Javascript 阻止同一域iframe访问周围窗口的范围

Javascript 阻止同一域iframe访问周围窗口的范围,javascript,html,iframe,Javascript,Html,Iframe,我有一个iframe,它显示与主窗口相同域的网页(但我无法直接控制)。 对于我的应用程序来说,操纵iframe网页的html是至关重要的,这意味着插入事件处理程序 但是,我想让iframe不可能操纵主窗口,例如,使用这样的脚本 window.parent.location.href = 'http://wwww.somewhereelse.com'; 或 简而言之,我想要一个iframe,我可以从周围的范围操纵它,但不能从周围的范围操纵它,反之亦然。这是可能的吗?如果我在iframe的html

我有一个iframe,它显示与主窗口相同域的网页(但我无法直接控制)。 对于我的应用程序来说,操纵iframe网页的html是至关重要的,这意味着插入事件处理程序

但是,我想让iframe不可能操纵主窗口,例如,使用这样的脚本

window.parent.location.href = 'http://wwww.somewhereelse.com';


简而言之,我想要一个iframe,我可以从周围的范围操纵它,但不能从周围的范围操纵它,反之亦然。这是可能的吗?

如果我在iframe的html前加上
window.parent=null
,这将明显阻止iframe访问外部作用域。

它不会。这将使
window.top
打开…即使它没有打开:没有任何东西阻止框架文档在您可以注入null赋值之前将
window.parent
的值复制到另一个变量。如果我预先设置了它,那么就不会在iframe中的任何其他代码之前执行它。但是关于window.top,您是对的。不幸的是,至少在chrome中,无法设置
window.top=null
(只读属性),因为您无法直接控制它,唯一的方法是通过iframe访问它的DOM,但是没有办法做到这一点,也无法保证页面上的脚本不会首先执行。我通过ajax访问iframe的内容,并将其插入到
iframe.on(“加载”)
。所以是的,我可以保证执行的顺序。
window.parent.getElementById('123').innerHTML = 'anything';