【发布时间】:2016-04-12 11:53:55
【问题描述】:
在我正在开发的 Cordova 应用程序中,有一个 iframe。问题是在测试应用程序(模拟器和设备上)时,iframe 是空白的。但是,在 Android 上,iframe 可以完美运行。
iframe 在 Angular 指令中动态加载。
在指令链接函数中,以下代码用于加载 iframe 并将其附加到指令的元素:
var iframe = angular.element('<iframe class="widget" width="' + widgetWidth + '" height="' + widgetHeight + '"></iframe>');
iframe.attr('src', url);
element.append(iframe);
我也尝试过在以下几行中使用一些东西:
var iframe = document.createElement('iframe');
iframe.src = url;
这会导致类似以下内容(使用 Safari 网络检查器):
<iframe class="widget" width="384" height="505" src="http://hostname/correct/uri"></iframe>
在我的 index.html 文件中,我有以下设置:
<meta http-equiv="Content-Security-Policy" content="script-src * 'unsafe-eval'; connect-src * 'unsafe-eval'; object-src 'self'; style-src * 'unsafe-inline';">
我的 cordova config.xml 中还有以下几行:
<access origin="*" subdomains="true" />
<allow-intent href="http://*/*" />
<allow-intent href="https://*/*" />
Safari Web Inspector 中也没有错误或警告。
所以我的问题是,是否有一些技巧可以让 iFrame 在我缺少的 Cordova iOS 应用程序中工作。或者我当前的配置/代码有什么问题?
我正在使用 angularjs 1.5.3 并有 jquery 2.2.1(在 angularjs 之前加载)以防万一。
【问题讨论】:
-
经过进一步测试,我还注意到 iframe 的 onload 事件从未被触发。以防万一有人对此有所了解。
标签: ios angularjs cordova iframe