“访问被拒绝”当脚本尝试在IE8访问的iframe(“Access is denied” when

2019-10-19 17:56发布

我“懒加载”通过覆盖文件撰写功能,并在以后的时间恢复它在我的网站上的第三方广告脚本。 这则广告脚本创建一个iframe,并试图写它。

我看到在Internet Explorer 8的“访问被拒绝”的错误(但不是在FF,Safari浏览器或Chrome)当脚本试图访问frame.document。 该框架存在(我可以看到它在IE8开发工具)

任何想法,为什么发生这种情况? 难道是因为iframe是没有准备好,或者因为跨站点的安全限制(这我不完全理解)?

Answer 1:

只是一个镜头在这里没有看到你的代码的黑暗,但请检查您document.domain的明确设置你的页面上。 如果要设置文档的领域,试图访问一个动态注入的iFrame可以在IE抛出访问错误。 例如,如果下面的设置尝试注释掉它只是为了测试:

//document.domain = "mydomain.com";


Answer 2:

这要看从哪个你想访问frame.document上下文。

例如,假设您加载您的网页上foo.com。 它依次加载了一个广告在一个名为“myFrame”框架ad.com运行。

如果在上foo.com一个脚本块,您尝试访问myFrame.document,你会得到一个投诉,因为网页不住在同一个域。 您可以从iframe中引用的文件,而不是外界。

这就是跨站点安全的基础。 如果你可以给我们上这实际上是造成问题的原因,并在其领域的各个部分运行的代码片段的详细信息,我们也许能帮助更多。



文章来源: “Access is denied” when script tries to access iframe in IE8