Maison  >  Article  >  interface Web  >  Solution au bug d'affichage Iframe lorsque Firefox revient_Experience Exchange

Solution au bug d'affichage Iframe lorsque Firefox revient_Experience Exchange

PHP中文网
PHP中文网original
2016-05-16 12:06:001949parcourir

Solution au bug d'affichage Iframe au retour de Firefox_Experience échange

<script type="text/javascript">//<![CDATA[ 
if(getCookie(&#39;firefoxIframe&#39;)){ 
document.write(&#39;<p id="addAd"><a href="cookie.html">点击这里删除这个iframe</a></p>&#39;); 
document.write(&#39;<iframe height="120" width="300" marginheight="0" marginwidth="0" 
frameborder="0" src="nAdPre.swf"></iframe>&#39;); 
}else{ 
document.write(&#39;<p id="addAd"><a href="cookie.html">点击这里增加一个iframe</a></p>&#39;); 
} 
//]]></script>

Ouvrez la démo du bug Le cookie n'existant pas, les trois flashs affichés sont tous implémentés via Iframe <.>Cliquez sur "Cliquez ici pour ajouter une annonce iframe" et passez à une nouvelle page pour écrire un cookie nommé firefoxIframe
Cliquez sur "Retour" ou sur le bouton de retour du navigateur pour revenir à la page de démonstration de bug et trouver l'iframe Le flash à l'intérieur est égaré, c'est-à-dire que le flash du lien iframe en position 2 n'est pas chargé. Le flash en position 3 est affiché et le flash en position 3 est affiché en position 4, mais le flash en position 4 existe toujours.
Fermez l'onglet (ne fermez pas tout le navigateur, si vous fermez tout le navigateur, le cookie sera également invalide) ou ouvrez un nouvel onglet et rechargez la page, 4 Iframes afficheront 4 flashs normalement
Si vous cliquez " Cliquez ici pour supprimer cette annonce iframe", passez à une nouvelle page pour supprimer le cookie, puis revenez et constatez que le flash dans l'iframe est mal placé
Si vous écrivez un cookie ou supprimez un cookie sans revenir en arrière navigateur et y accéder directement via l'URL, cela ne fonctionnera pas. Une dislocation se produira
Analyse et solution simples
Il semble que lorsque Firefox revient, Javascript est réexécuté, mais l'Iframe n'est pas rechargé selon le src. attribut, mais l'Iframe et le src sont associés à un numéro similaire, et parce que l'exécution de Javascript lors du retour entraîne un Iframe de plus (ou un de moins), ce qui entraîne un mauvais alignement de l'appariement suivant.

Ce qui précède n'est que spéculation, mais il s'agit bien d'un bug dans Firefox (2.0.0.3). Javascript est réexécuté au retour d'IE, et l'Iframe est rechargé en fonction de src. quand Opera revient. La page Aucun changement.

La solution est d'ajouter une Iframe cachée au texte pour occuper l'espace. Modifiez le code ci-dessus comme suit :


document.write(&#39;<p id="addAd"><a href="cookie.html">点击这里增加一个iframe</a></p>&#39;); 
//把上面的代码修改成为 
document.write(&#39;<iframe src="#" style="display:none;"></iframe>&#39;); 
document.write(&#39;<p id="addAd"><a href="cookie.html">点击这里增加一个iframe</a></p>&#39;);
Ce qui précède est l'Iframe lorsque. Firefox renvoie une solution pour afficher le contenu d'échange bug_Experience. Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn