场景:
我有一个使用 angularJS
和 ionic
为 cordova 3.5
制作的应用程序
该应用程序通过 iframe 加载网络,以逐步的形式制作一些东西。该网站位于其他网站上。
html 的代码是:
<div id="IframeContainer">
<iframe src="URL" style="width:100%;height:90%" onLoad="checkforclose(this);"></iframe>
</div>
此分步表单返回一个结果,cordova 应用程序需要知道该表单中发生了什么。它可以返回一个 json、一个文本/纯文本,甚至是一个自动发布到另一个网站的 HTML(这与这个未回答的问题相关联: Post and redirect FROM Web Api )
也就是说,在我的cordova应用程序中,我有一个javascript函数来关闭iframe并再次接管我的应用程序的控制,检测url是否包含单词“close”。这是代码:
<script type="text/javascript">
function checkforclose(pageURL) {
var urlFrame = pageURL.contentWindow.location;
if (urlFrame.href.indexOf('close') > -1) {
window.location = "#/employees/";
}
}
</script>
<小时/>
问题:
尝试避免 CORS(所以我认为我无法在加载时读取 iframe 内容,或者我错了?),
不使用 jQuery(欢迎使用 AngularJS,更不用说纯 JavaScript)
再次将控制权交给应用程序
如何获取分步外部表单返回的数据?
<小时/>更新1:
我尝试编码“onload”读取(CORS 错误),并发布到 cordova-html 页面,但没有任何可观的结果。
最佳答案
可能的解决方案是 Web messaging or cross-document messaging 。这是 blog post有人使用此方法从 iframe 中加载的外部页面访问移动设备的摄像头。尽管此人的目标相反(从 Cordova 获取数据到 iframe 中加载的页面),但他们能够完成 iframe 中的页面和 Cordova 之间的跨域通信;我相信这就是您正在尝试做的事情。
关于javascript - 如何从 cordova 应用程序内的外部站点获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27023089/