javascript - 如何从 cordova 应用程序内的外部站点获取数据?

标签 javascript angularjs cordova iframe cors

场景:

我有一个使用 angularJSioniccordova 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/

相关文章:

php - 网址美化

javascript - 如何让这个导航栏在滚动时 float 在顶部?

javascript - 如何按 id 值从最新到最旧对 JSON 进行排序

javascript - 在 Protractor 中测试 Material 设计元素

android - 如何在 Android 上使用 phonegap/cordova 下载和保存文件

javascript - Angular 2 *ngFor - 条件包装元素。就像使用里面有三列的引导行一样,然后添加一个新行

javascript - Angular 未定义

javascript - AngularJS Core 与 Angular JS Nuget 包?

javascript - 如何使用 HTML5 Javascript 和 Phonegap 获取设备信息

android - Ext未定义错误