我正在将同一域中的网页加载到我网页上的iframe
。
在iframe
中与JavaScript驱动的表单进行交互后,我希望它能够接管整个文档。我不能只将页面的位置设置为iframe
的位置,因为无法通过传递URL参数将其设置为我想要的状态。
我可以找到跳出iframe
s的所有引用都是iframe
中控制弹出窗口的页面。我想从主文档上下文中的代码中弹出iframe
。
(我的项目实际上是一个谷歌Chrome用户脚本,与我没有服务器控制权的第三方网站进行交互。)
我正在使用jQuery,但vanilla JavaScript当然也很好。
答案 0 :(得分:3)
您无法通过常规方法(location.href = "..."
)真正“弹出”iframe,因为您将丢失表单和JS状态。
同样,代码如:
document.head=frames[0].document.head;
document.body=frames[0].document.body;
会出现,但不会保留JS状态。
有可能迭代框架的内容并将结构和值复制到当前页面,但这对我来说似乎是个傻瓜。
我建议你只是让它看起来就像框架已经接管一样。您可以使用以下代码执行此操作:
var usurpingFrame = $("YOUR FRAME SELECTOR");
usurpingFrame.css ( {
position: "fixed",
top: "0",
left: "0",
"z-index": "8888",
margin: "0",
height: "100%",
border: "none"
} );
usurpingFrame.width ($(window).width() );
$("*").not (usurpingFrame).not (usurpingFrame.parents() ).hide ();