12

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

加载垫时发生错误未捕获的安全错误:无法在“文档”上设置“域”属性:沙盒 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; // 彗星 }

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

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

4

2 回答 2

0

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

于 2021-05-29T13:45:56.543 回答
0

来自“Document.domain - Web API | 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(跨站点请求伪造)。

于 2021-07-15T19:26:13.480 回答