我正在尝试在我的网页中启用沙盒加载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?
注意:没有沙盒,它可以正常工作。
答案 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(跨站点请求伪造)。