这是交易(过度简化了一点)我正在创建一个具有“选项卡”的应用程序,每个选项卡都可以将类似的内容显示为 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>
但是每次重新插入时,仍然会进行刷新。
有任何想法吗?