ホームページ >ウェブフロントエンド >CSSチュートリアル >Firefox 復帰時の Iframe 表示バグの解決策_Experience 交換

Firefox 復帰時の Iframe 表示バグの解決策_Experience 交換

PHP中文网
PHP中文网オリジナル
2016-05-16 12:06:002015ブラウズ

firefox がリターンするときの iframe 表示バグの解決策_experience 交換

<script type="text/javascript">//<![cdata[ 
if(getcookie('firefoxiframe')){ 
document.write('<p id="addad"><a href="cookie.html">点击这里删除这个iframe</a></p>'); 
document.write('<iframe height="120" width="300" marginheight="0" marginwidth="0" 
frameborder="0" src="nadpre.swf"></iframe>'); 
}else{ 
document.write('<p id="addad"><a href="cookie.html">点击这里增加一个iframe</a></p>'); 
} 
//]]></script>

バグのデモを開きます。cookie が存在しないため、表示される 3 つのフラッシュはすべて iframe を通じて実装されています。「ここをクリックして iframe 広告を追加します」をクリックして新しいページにジャンプし、firefoxiframe という名前の cookie を書き込みます
「戻る」またはブラウザの戻るボタンをクリックしてバグ デモ ページに戻ることが判明しました。 iframe 内のフラッシュの位置が間違っていました。つまり、位置 2 で iframe にリンクされているフラッシュが読み込まれていませんでした。位置 3 のフラッシュは表示され、位置 3 のフラッシュは位置 4 に表示されましたが、位置 4 のフラッシュはまだ存在していました。
タブを閉じる(ブラウザ全体を閉じないでください。ブラウザ全体が閉じている場合、cookieも無効になります)、または新しいタブを開いてページをリロードすると、4つのiframeで通常通り4回のフラッシュが表示されます。
今回は、「この iframe 広告を削除するにはここをクリックしてください」をクリックし、新しいページに移動して cookie を削除します。戻ると、iframe 内のフラッシュが間違った位置にあることがわかります。
cookie を書き込む場合cookieを削除するか、ブラウザを経由せずにurlから直接アクセスすると、ずれは生じません
簡単な分析と解決策
firefoxが復帰するとjavascriptが再設定されるようです-実行されましたが、iframe は src 属性に従って再ロードされませんが、iframe と src には同様の番号が与えられます。ペアリングと、戻るときの javascript の実行により、iframe が 1 つ増えます (または 1 つ減ります)。後続のペアリングがずれる原因となります。

上記は単なる推測ですが、これは確かに firefox (2.0.0.3) のバグです。ie が復帰すると javascript が再実行され、src に基づいて iframe が再ロードされます。javascript は再実行されません。 -opera が戻ったときに実行されます。ページは変更されていません。

解決策は、テキストに非表示の iframe を追加してスペースを占有することです。上記のコードを次のように変更します。

document.write('<p id="addAd"><a href="cookie.html">点击这里增加一个iframe</a></p>'); 
//把上面的代码修改成为 
document.write('<iframe src="#" style="display:none;"></iframe>'); 
document.write('<p id="addAd"><a href="cookie.html">点击这里增加一个iframe</a></p>');

上記は次のとおりです。 firefox が返す内容 iframe 表示バグの解決策_エクスペリエンス交換コンテンツ その他の関連コンテンツについては、php 中国語 web サイト (www.php.cn) に注目してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。