所以我读过HTML5 sandbox
property,我明白如果我想阻止iframe重定向其父窗口,我可以使用sandbox
属性离开allow-top-navigation
。但是,当这样做时,如果iframe最初依赖于顶级重定向,那么它所发生的是它重定向到空白页面,有效地破坏了导航。
我是否可以阻止iframe修改其父窗口,同时仍然允许“顶级”重定向,只允许这些在iframe的上下文中工作而不是顶级?
编辑:对于上下文,我正在与第三方合作,其网页上有一个目标为_top
的表单。如果iframe是沙箱,则在提交表单时,用户会获得一个空白页面,如果不沙箱,则会重定向整个页面。我正在寻找能够提交表单并在iframe中显示结果的内容。
答案 0 :(得分:4)
使用 HTML5 ,添加了iframe sandbox属性。
在撰写此works on Chrome, Safari, Firefox and recent versions of IE and Opera时,您可以完成您想要的任务:
<iframe src="url" sandbox="allow-same-origin"></iframe>
浏览器兼容性
一些有用的链接
答案 1 :(得分:0)
您可以使用onbeforeunload
属性并确定是否要重定向。
基本上我会尝试的是:
allow-top-navigation
省略到iframe onbeforeunload
属性,该属性调用添加沙箱属性的函数(确保不会返回任何内容,因为会弹出一个对话框)这应该有效,因为请求首先在iframe中生成,然后我们可以阻止它转移到我们的顶级窗口。
你应该检查的另一件事是你是否遗漏了allow-forms
选项,这可能导致你所描述的内容。
如果有任何效果,请告诉我。