Javascript PhoneGap中的postMessage不工作-iframe到父消息
我已经建立了一个PhoneGap应用程序,它利用了与应用程序捆绑在一起的iframe,我试图将e消息从iframe传递给家长,当我在实际的iPad上运行应用程序时,它似乎不起作用;但是,当我在同一台设备上的浏览器中运行应用程序时,它工作正常 以下是我在iframe中用来发送消息的代码,请注意,我使用HammerJS来捕获一些事件:Javascript PhoneGap中的postMessage不工作-iframe到父消息,javascript,ios,cordova,iframe,Javascript,Ios,Cordova,Iframe,我已经建立了一个PhoneGap应用程序,它利用了与应用程序捆绑在一起的iframe,我试图将e消息从iframe传递给家长,当我在实际的iPad上运行应用程序时,它似乎不起作用;但是,当我在同一台设备上的浏览器中运行应用程序时,它工作正常 以下是我在iframe中用来发送消息的代码,请注意,我使用HammerJS来捕获一些事件: var domain = 'http://' + document.domain; $('body').hammer().on("swipe", "", funct
var domain = 'http://' + document.domain;
$('body').hammer().on("swipe", "", function(event) {
var message = event.gesture.direction;
parent.postMessage(message,domain); //send the message and target URI
});
我用来获取信息的代码是:
window.addEventListener('message',function(event) {
alert(event.data);
},false);
答案是使用“file://”作为域名,因此代码如下所示:
var domain = 'file://';
$('body').hammer().on("swipe", "", function(event) {
var message = event.gesture.direction;
parent.postMessage(message,domain); //send the message and target URI
});
尝试使用
var domain = '*';
通常这是因为跨域问题,您需要使用:
parent.postMessage(message,"*");
由于phonegap/cordova页面在“file://”处提供,并且根据
“…将消息发布到文件中的页面:URL当前要求targetOrigin参数为“*”。文件:/”不能用作安全限制;此限制将来可能会修改。”
不为我工作,这是我从第页打电话的方式);“class=”ui btn ui角落全部“>打开窗口,接收与您相同的内容,并在postMessage中尝试了file://和,但运气不佳。请您解释一下如何从html打开iframe。这不是从html打开iframe,而是将数据从iframe传递到父网站,您可以在此处阅读更多信息:。至于你想做什么,你不能从JavaScript打开iframe,但你可以打开一个新窗口,你可以在这里阅读更多:@JayaVishwakarma你是如何解决这个问题的?我们使用的是
parent.postMessage(消息“*”)
可以在Android上运行,但我们无法让它运行iOS@jablesauce您是否将iframe域列入了白名单?请参阅->IOS:“若要将域列入白名单,请将其添加到Cordova.plist文件中的ExternalHosts数组。”@jablesauce找到解决方案了吗?