尝试在DOM中移动iframe而不刷新。铬';s";“采用节点”;似乎不起作用
这是交易(过于简化了一点) 我正在创建一个有“选项卡”的应用程序,每个选项卡都可以有类似的内容显示为iFrame。 因此,我希望在tab开关之间共享这些,因为来自iFrame加载的初始请求有点昂贵 然而,这需要我“保存”iframe,然后在DOM上重新插入。 这有两个问题: 1) 当iframe位于内存中时,我似乎无法访问iframe的contentWindow来调用javascript函数 2) iframe在插入DOM时会重新加载 我阅读了该文档。adoptNode可能会解决问题2,因此我尝试了以下方法尝试在DOM中移动iframe而不刷新。铬';s";“采用节点”;似乎不起作用,dom,google-chrome,iframe,Dom,Google Chrome,Iframe,这是交易(过于简化了一点) 我正在创建一个有“选项卡”的应用程序,每个选项卡都可以有类似的内容显示为iFrame。 因此,我希望在tab开关之间共享这些,因为来自iFrame加载的初始请求有点昂贵 然而,这需要我“保存”iframe,然后在DOM上重新插入。 这有两个问题: 1) 当iframe位于内存中时,我似乎无法访问iframe的contentWindow来调用javascript函数 2) iframe在插入DOM时会重新加载 我阅读了该文档。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>
window.onload=函数(){
设置超时(采用帧,500);
};
var next=['红色','蓝色']
var指数=0;
函数adoptIFrame(){
var iFrame=document.adoptNode(document.getElementById(“frame”);
document.getElementById(下一个[index++%2]).appendChild(iFrame)
设置超时(采用帧,500);
}
但每次重新插入时,仍会进行刷新
有什么想法吗?这有点晚了,但由于我遇到了相同的问题,我做了一些研究,似乎该功能已从Webkit中删除: