私は何年も前にこの同じ行動に遭遇し、そのとき解決策が見つからなかったときにあきらめました。私は誰かがここで何が起こっているのか、それを解決する方法を知っていることを望んでいます。
Firefoxにiframeを含むページがあり、そのiframeで2番目のサブページにリダイレクトするサブページを読み込むと、「reload /リフレッシュ」。最初のサブページを再度表示する唯一の方法は、ウィンドウ/タブを閉じて親ページを再度開くことです。ページをリロードすると、Firefoxは毎回常に2番目のサブページにジャンプします。これは、親文書の初期iframe URLを後で変更した場合でも発生します。そして、このevenは、URLを変更した場合とキャッシュをクリアした場合に発生します。
以前にこの問題に遭遇したとき、それは広告配信に問題を引き起こしていましたが、今回はコンテンツの問題です。誰もがこれに遭遇し、その周りの方法を知っていますか?
[編集]
Iframeの動作をテストするために使用できる3つのファイルを作成しましたが、変更を加えて動作をテストするには、制御するWebサーバーで独自のhtmlページを操作する必要があります。
私が使用しているファイルは次のとおりです。
http://www.fatfx.com/tests/doc1.html
-5秒後にdoc2.htmlにリダイレクトしますhttp://www.fatfx.com/tests/doc2.html
-静的ファイルhttp://www.fatfx.com/tests/doc2.html
-静的ファイル手順:
<iframe src="http://www.fatfx.com/tests/doc1.html" width="300" height="300" />
This is document one. Redirecting in 5 seconds...
が表示され、次にThis is document two.
が表示されますThis is document two
が表示されます。This is document two
が表示されます。doc1.html
からdoc3.html
に変更します。This is document two.
ページソースをチェックして、ステップ5からのコード変更があることを確認します。注:一意のIDを追加してiframeタグを変更しようとしました。それはうまくいきませんでした。 Cache-Control、Pragma、およびExpiresメタタグを追加して、ドキュメントのキャッシュを防止しようとしました。それはうまくいきませんでした。 JSでプログラム的にタグを書き込もうとしました。それはうまくいきませんでした。
私が言うように、私はおそらく3年前にこの行動に遭遇しました。これは「バグ」ではなく、望ましい動作です。しかし、それを回避する方法が必要です。
Edit 2
これはMozillaの既知のバグで、2005年に最初にログに記録されたようです。 Bugzillaレポート ここにあります 。
誰かが回避策を知っているなら、私に知らせてください、そして、私はこれを答えられたものとしてマークします。
これを解決する最も簡単な方法は、以下を追加することです:
for each (iframe in document.getElementsByTagName('iframe')) { iframe.src = iframe.src };
onload/pre-onload JavaScriptブロックに。
これにより、他のブラウザに存在する場合でも問題が解決します。
古いバージョンのIE(とにかくこの修正は必要ありません)で静かに失敗させたい場合は、try/catchでラップします。