一尘不染

尝试访问以编程方式创建的文档对象时出现“访问被拒绝” JavaScript错误 (IE-only)

javascript

我有一个项目,需要使用JavaScript创建<iframe>元素并将其附加到DOM。之后,我需要在<iframe>中插入一些内容。这是一个将嵌入第三方网站的小部件。

我不想设置<iframe>的“ src”属性,因为我不想加载页面。相反,它用于隔离/沙盒我插入其中的内容,这样我就不会遇到CSS或JavaScript与父页面冲突的情况。我正在使用JSONP从服务器加载一些HTML内容并将其插入此<iframe>中。

我的工作正常,但有一个严重的例外-如果在父页面中设置了document.domain属性(可能在部署此小部件的某些环境中),Internet Explorer(可能是所有版本),在尝试访问已创建的此<iframe>的文档对象时,在6、7和8中确认)给我一个“访问被拒绝”错误。在我测试过的任何其他浏览器(所有主要的现代浏览器)中都没有发生。

这很有道理,因为我知道Internet Explorer要求您将将彼此通信的所有窗口/框架的document.domain设置为相同的值。但是,我不知道有什么方法可以在无法访问的文档上设置此值。

有谁知道执行此操作的方法-以某种方式设置此动态创建的