Iframe 在chrome扩展中使用TinyEdit或wysiwyg编辑器时出现沙盒访问冲突

Iframe 在chrome扩展中使用TinyEdit或wysiwyg编辑器时出现沙盒访问冲突,iframe,google-chrome-extension,sandbox,same-origin-policy,tinyeditor,Iframe,Google Chrome Extension,Sandbox,Same Origin Policy,Tinyeditor,尝试在chrome扩展中加载第三方wysiwyg编辑器时出现以下错误 沙盒访问冲突:在上阻止了一个帧 “铬-extension://cmcjindomengjienigbcldekcfnhfped“从访问 帧位于“空”。两个框架都是沙盒,缺少 “允许相同来源”标志 我最初遇到了一个类似的错误,并通过添加允许相同来源标志来解决它。这导致另一个错误,需要允许脚本标志。下面是iframe元素的当前状态 <iframe sandbox="allow-same-origin allow-script

尝试在chrome扩展中加载第三方wysiwyg编辑器时出现以下错误

沙盒访问冲突:在上阻止了一个帧 “铬-extension://cmcjindomengjienigbcldekcfnhfped“从访问 帧位于“空”。两个框架都是沙盒,缺少 “允许相同来源”标志

我最初遇到了一个类似的错误,并通过添加允许相同来源标志来解决它。这导致另一个错误,需要允许脚本标志。下面是iframe元素的当前状态

<iframe sandbox="allow-same-origin allow-scripts" src="editor.html" width="350" height="350" style="border:none;"></iframe>
之前初始化为

this.i = document.createElement('iframe');

如果对iframe进行沙箱处理,则无法从外部访问其内容。然后,您应该使用postMessage在用户代理之间进行通信

通过在同一域上加载的iframe上同时使用allow-same-origin和allow脚本,iframe可以删除sandbox属性

当嵌入页面与包含iframe的页面具有相同的原点时,同时设置allow脚本和allow home-origin关键字,允许嵌入页面简单地删除sandbox属性,然后重新加载自身,从而有效地完全脱离沙盒


我设法找到了一个解决办法,将代码从沙箱中取出,并取消不安全的评估。这需要一些硬编码和结束,但我现在将处理它。大多数新函数(…)行都与为编辑器类使用动态变量名有关。我尝试使用window[name],但没有成功,所以我只使用了初始化时使用的相同实例名。理想情况下,我想知道是什么阻止了嵌入式iframe的友好。是的,我发现问题在于我试图做不可能的事情。这在技术上是可能的,但有充分的理由加以阻止。
this.i = document.createElement('iframe');