我正在尝试将代码注入到通过InAppBrowser打开的网站中:
var inappbrowser = window.open('http://example.com', '_blank', 'location=no,toolbar=no');
为此,我使用的是(不完全按照这个结构,但达到了同样的效果):
var loop;
inappbrowser.addEventListener('loadstop', function(event) {
console.log('page finished loading - ' + JSON.stringify(event));
clearInterval(loop);
loop = setInterval(function() {
console.log('checking for request');
inappbrowser.executeScript({
code: '1+2'
}, function(result) {
console.log('received: ' + result);
});
}, 500);
});
它可以正常地使用初始页面,但一旦我从InAppBrowser内部导航到另一个页面,就不会执行任何脚本。事件有效,循环有效,但是“received:[3]”不再被记录。已安装的插件包括:InAppBrowser、Console和BarcodeScanner。InAppBrowser和BarcodeScanner都是直接从它们的Github存储库安装的。Cordova版本为3.3(也尝试过3.4,结果相同),Xcode版本为5.0.2,iOS目标版本为7。我始终使用cordova prepare,然后直接在iPad Air上使用Xdebug运行。我还尝试过cordova build ios。我还注意到脚本稍后会在导航到另一个页面时执行。在初始页面上滚动时也不会执行。有人知道这里发生了什么吗?这种情况其他人是否也有遇到?非常感谢您的帮助!我已经研究并从零开始创建了全新的cordova项目,并基本上在这个奇怪的情况下度过了整天...