无法在沙箱环境中加载iframe

时间:2015-12-20 07:58:16

标签: javascript jquery iframe etherpad

我正在尝试在我的网页中启用沙盒加载iframe,但它显示错误:

加载打击垫时发生错误 Uncaught SecurityError:无法在'Document'上设置'domain'属性:禁止为沙盒iframe分配。

嵌入iframe的代码是:

<iframe id = "iframe1" name = "iframe1" src = "http://localhost:9002/p/6dN6dkWRmd"  height = "700px"  width = "500px" sandbox = "allow-scripts allow-top-navigation"></iframe>

在iframe javascript中我发现此代码抛出错误:

if ((!browser.msie) && (!(browser.mozilla && browser.version.indexOf("1.8.") == 0))) {
            document.domain = document.domain; // for comet
          }

有人可以解释一下这个document.domain正在做什么,我该怎么做才能在沙箱环境中运行这个iframe?

注意:没有沙盒,它可以正常工作。

2 个答案:

答案 0 :(得分:0)

我认为问题是您的 iframe 位于本地主机上,请尝试使用另一个域,即使它只是指向您的本地计算机。

答案 1 :(得分:0)

来自"Document.domain - Web APIs | MDN"

Note that setting document.domain to its current value is not a no-op. It still changes the origin. For example, if one page sets
          document.domain = document.domain;
then it will be counted as cross-origin from any other normally-same-origin pages that have not done the same thing.

这应该让 iframe 页面被视为跨域,即使它们在同一个域中。

检查 CORS(跨源)和 CSRF(跨站点请求伪造)。