2

これが取り引きです(少し単純化しすぎています)「タブ」を持つアプリケーションを作成しています。各タブには、iFrameとして表示される同様のコンテンツを含めることができます。そのため、iFrame ロードからの最初のリクエストはやや高価な操作であるため、タブ スイッチ間でそれらを共有したいと考えていました。

ただし、これには iframe を「保存」してから、DOM に再挿入する必要があります。これには 2 つの問題があります。1) iframe の contentWindow にアクセスして、メモリ内にある間は javascript 関数を呼び出すことができないようです。2) iframe は、DOM に挿入されるたびにリロードされます。

document.adoptNode が問題#2を修正する可能性があることを読んだので、次のことを試しました

<html> 
 <head> 
 </head> 
 <body> 
  <script> 

    window.onload = function() {
            setTimeout(adoptIFrame, 500);
        };

    var next = ['red', 'blue']
    var index = 0;

    function adoptIFrame() {
        var iFrame = document.adoptNode(document.getElementById("frame")); 
        document.getElementById(next[index++ % 2]).appendChild(iFrame) 
        setTimeout(adoptIFrame, 500);
    }

  </script> 

    <div id="red" style="width:500;height:500;background-color:red;">
    </div>
    <div id="blue" style="width:500;height:500;background-color:blue;">
        <iframe src="your_url" id="frame"/>
    </div>

   </body>

ただし、毎回、再挿入時に更新が行われます。

何か案は?

4

1 に答える 1

3

これは少し遅れていますが、同じ問題に遭遇したため、いくつかの調査を行ったところ、Webkit から機能が削除されたようです: https://bugs.webkit.org/show_bug.cgi?id=81590

于 2012-08-08T16:01:22.750 に答える