Javascript 如何";“弹出”;我的文档中是否有IFRAME?
我正在将同一域中的页面加载到我页面上的Javascript 如何";“弹出”;我的文档中是否有IFRAME?,javascript,jquery,iframe,userscripts,Javascript,Jquery,Iframe,Userscripts,我正在将同一域中的页面加载到我页面上的iframe 在iframe中与JavaScript驱动的表单交互后,我希望它接管整个文档。我不能仅仅将页面的位置设置为iframe的位置,因为无法通过传递URL参数将其设置为我想要的状态 我能找到的所有跳出iframes的参考资料都是关于iframe中控制跳出的页面。我想从主文档上下文中的代码中弹出iframe (我的项目实际上是一个Google Chrome用户脚本,与我无法控制的第三方网站交互。) 我使用的是jQuery,但香草JavaScript当然
iframe
在iframe
中与JavaScript驱动的表单交互后,我希望它接管整个文档。我不能仅仅将页面的位置设置为iframe
的位置,因为无法通过传递URL参数将其设置为我想要的状态
我能找到的所有跳出iframe
s的参考资料都是关于iframe
中控制跳出的页面。我想从主文档上下文中的代码中弹出iframe
(我的项目实际上是一个Google Chrome用户脚本,与我无法控制的第三方网站交互。)
我使用的是jQuery,但香草JavaScript当然也不错。您不能通过正常方法(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 ();
为什么不在主文档中执行
location.href=“…”
?$(“*”).hide()$(“iframe”).show()。仅仅通过传递URL,我无法使页面处于相同的状态。@Imdad:这只会导致页面中的所有内容都被隐藏\-:
,然后您必须在其中放入2个div
s,其中一个将只包含iframe,而另一个div将包含所有其他内容。只需隐藏第二个DIV。如果这也不起作用,那么发布你的HTML或JSFidle。我开始认为这样的东西可能是我想要的,但我缺乏具体的诀窍。我现在就试试这个谢谢!