3

これは Firefox Home の厳密な問題のようです。Mozzilla がサポートを打ち切り、iStore の場合は削除したため、回避策を探しても意味がないと思います ( http://thenextweb.com/apps/2012/08/ 31/mozilla-retires-firefox-home-ios-releases-source-code-github/ )、とにかく私は彼らにバグを投稿しました ( https://bugzilla.mozilla.org/show_bug.cgi?id=853377 )フォロー/販売に興味がある


iframe メソッドを使用して通信する非常に優れたクロスブラウジング ライブラリがあります。

そして、iPhone の Firefox で開くまでは美しい動作をします。ライブラリを含むページが開始され、魔法のようにリダイレクトされます。

さて、私はコードに入り、問題を特定しようとしました:

iframe 親リロードを iframe src に動的に追加した後。私は以下をテストしました:

  1. document.createElement('iframe')ドキュメントへの追加
  2. document.createElement('iframe')事前作成された div への追加
  3. .innerHTML事前に作成された iframe コードを含むメソッド
  4. frames['iframe_name'].location.src空のsrcを持つ事前作成されたiframeを使用
  5. .location.assign()
    • document.getElementById()失敗する
    • frames['iframe_name']リダイレクトあり
  6. jqueryと同じ $('<iframe src="link"/>'). appendTo('#reportA');
  7. 最初にsrcなしでiframeを作成してから設定しようとしました
  8. $('#iframe').attr('src','link')また、原因リダイレクトで更新します

さらに、ログに表示されます(iframeのページと呼ばれるステータスがログに記録されています)。実際には 2 つの呼び出しがあったため、最初に追加された iframe が読み込まれ、次に新しいページで iframe src が開かれるように見えます。

コードを分析しているときに、js ローダーによって動的に追加されたコードの一部で iframe が作成されたときに問題が発生することがわかりました。次の追加スクリプトを使用しました

var head = document.getElementsByTagName("head")[0];  
var script = null;  
script = document.createElement('script');  
script.type = 'text/javascript';  
var tag = Math.round(new Date().getTime() / 1000);  
script.src =  GLOBAL_VARIABLE_WITH_PATH_TO_URL+'jsc/include.js?'+tag ;  
head.appendChild(script);

も試した

 document.write("<script src='"+FUTUREclickINFOpathS+"fcijsc/fci-include.js?"+tag+"'><\/script>");

アップデート

また、jqueryにirameを追加しようとしました-メソッドで$(document).ready()使用すると、追加を呼び出すまで正常に動作しますdocument.writesetTimeout

さらに奇妙なことにsetTimeout()、メインの静的 js ファイルで使用すると、同じことが起こります。今日試してみて、何がsetInterval()起こっているのか見てみましょう。

したがって、iframe が事前に作成されていたとしても、iframe の src を変更すると、親のリロードが発生することは明らかです。理由はありますか?

ps。わかりにくい文章で申し訳ありませんが、その問題に頭を悩ませました

4

1 に答える 1

0

postMessageiframe から親への通信に使用していますか? parent.postMessage私はこれに遭遇し、iframe のスクリプトから削除すると修正されることに気付きました。見つけたら、これを回避する方法で更新します。

于 2014-07-11T18:27:05.730 に答える