2

这是交易(过度简化了一点)我正在创建一个具有“选项卡”的应用程序,每个选项卡都可以将类似的内容显示为 iFrame。因此,我希望在选项卡切换之间共享这些内容,因为 iFrame 加载的初始请求有点昂贵。

但是,这需要我“保存” iframe,然后重新插入 DOM。这有两个问题: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 回答