iframe的安全性错误

Rit*_*ika 11 javascript iframe android sencha-touch cordova

Android 4.4及更高版本设备中出现以下问题.

这就是我们的iframe看起来像:

<iframe frameborder=0 id="myIFRAME"></iframe>
Run Code Online (Sandbox Code Playgroud)

以下是我们以编程方式获取iframe的方式:

if(document.getElementById("myIFRAME")){
        me.setMyIFRAME(document.getElementById("myIFRAME").contentWindow);
}
Run Code Online (Sandbox Code Playgroud)

这导致与协议不匹配相关的安全性错误:

"Uncaught SecurityError:阻止带有原点" https://www.google.com "的框架访问带有"file://"的框架.请求访问的框架具有"https"协议,正在访问的框架具有协议"文件".协议必须匹配.

我们正在使用Sencha touch与Cordova开发我们的项目.

Rit*_*ika 0

事实证明,iframe 正在加载正在访问 window.document 的 html 页面,这会导致跨域安全错误,如果条件在页面内,则如下所示

 if (window.parent.document != window.document) 
Run Code Online (Sandbox Code Playgroud)

我们将其更改为以下条件以解决安全错误

if (window.parent != window)
Run Code Online (Sandbox Code Playgroud)