我“懒加载”通过覆盖文件撰写功能,并在以后的时间恢复它在我的网站上的第三方广告脚本。 这则广告脚本创建一个iframe,并试图写它。
我看到在Internet Explorer 8的“访问被拒绝”的错误(但不是在FF,Safari浏览器或Chrome)当脚本试图访问frame.document。 该框架存在(我可以看到它在IE8开发工具)
任何想法,为什么发生这种情况? 难道是因为iframe是没有准备好,或者因为跨站点的安全限制(这我不完全理解)?
我“懒加载”通过覆盖文件撰写功能,并在以后的时间恢复它在我的网站上的第三方广告脚本。 这则广告脚本创建一个iframe,并试图写它。
我看到在Internet Explorer 8的“访问被拒绝”的错误(但不是在FF,Safari浏览器或Chrome)当脚本试图访问frame.document。 该框架存在(我可以看到它在IE8开发工具)
任何想法,为什么发生这种情况? 难道是因为iframe是没有准备好,或者因为跨站点的安全限制(这我不完全理解)?
只是一个镜头在这里没有看到你的代码的黑暗,但请检查您document.domain的明确设置你的页面上。 如果要设置文档的领域,试图访问一个动态注入的iFrame可以在IE抛出访问错误。 例如,如果下面的设置尝试注释掉它只是为了测试:
//document.domain = "mydomain.com";
这要看从哪个你想访问frame.document上下文。
例如,假设您加载您的网页上foo.com。 它依次加载了一个广告在一个名为“myFrame”框架ad.com运行。
如果在上foo.com一个脚本块,您尝试访问myFrame.document,你会得到一个投诉,因为网页不住在同一个域。 您可以从iframe中引用的文件,而不是外界。
这就是跨站点安全的基础。 如果你可以给我们上这实际上是造成问题的原因,并在其领域的各个部分运行的代码片段的详细信息,我们也许能帮助更多。