尝试在 chrome 扩展中加载第三方所见即所得编辑器时出现以下错误。
沙盒访问冲突:阻止“chrome-extension://cmcjindomengjienigbcldekcfnhfped”处的框架访问“null”处的框架。两个框架都是沙盒的,并且缺少“允许同源”标志。
我最初遇到了类似的错误,并设法通过添加allow-same-origin标志来解决它。这导致另一个需要允许脚本标志的错误。下面是 iframe 元素的当前状态
<iframe sandbox="allow-same-origin allow-scripts" src="editor.html" width="350" height="350" style="border:none;"></iframe>
所见即所得的编辑器会动态创建一个 iframe 来保存编辑器。我假设这可能会触发错误的第二个实例。我尝试在沙盒页面中创建的 iframe 上设置 allow-same-origin标志,但这什么也没做。
我可以尝试另一种选择,但由于这也是一次学习冒险,我很想解决这个问题。
编辑: 我尝试用 div 替换动态创建的 iframe 只是为了看看会发生什么。我没有收到上面的错误,但正如预期的那样,当访问与 iframe 相关的属性时,代码失败了。这并不能证明新的 iframe 是问题所在,但它确实可能是。
编辑 2 FWIW,下面的行是引发错误的地方
this.e = this.i.contentWindow.document;
它之前被初始化为
this.i = document.createElement('iframe');