Cordova InAppBrowser:从脚本中关闭InAppBrowser实例
我正在尝试从注入的脚本关闭inappbrowser实例。Cordova InAppBrowser:从脚本中关闭InAppBrowser实例,cordova,inappbrowser,Cordova,Inappbrowser,我正在尝试从注入的脚本关闭inappbrowser实例。 这是我试过的代码 ref = window.open(tile.typeContentUrl_en, '_blank', 'location=no'); ref.addEventListener('loadstop', function(data, err) { ref.executeScript( { code: 'document.getElementsByTagName("body")[
这是我试过的代码
ref = window.open(tile.typeContentUrl_en, '_blank', 'location=no');
ref.addEventListener('loadstop', function(data, err) {
ref.executeScript( {
code: 'document.getElementsByTagName("body")[0].addEventListener("click", function(){ alert("clicked");ref.close() });'
}, function(){
console.log('script injected');
});
});
我在inappbrowser实例中没有定义
ref
。ref
是在cordova webview上定义的,但是inappbrowser
有自己的webview,并且那里没有定义ref
,所以你不能像那样关闭inappbrowser
我还没有测试过这个,它有点粗糙,但可能会工作:
ref = window.open(tile.typeContentUrl_en, '_blank', 'location=no');
ref.addEventListener('loadstop', function(data, err) {
ref.executeScript( {
code: 'document.getElementsByTagName("body")[0].addEventListener("click", function(){ alert("clicked");window.location.href = "close"; });'
}, function(){
console.log('script injected');
});
});
ref.addEventListener('loadstart', function(event) {
if(event.url.indexOf("close") > -1) {
ref.close();
}
});
我检查了这个,但是我不知道loadstart回调怎么没有被调用。有什么想法吗?我刚刚测试了它,它可以工作,但我不得不在loadstart上更改if,因为window.location.href=“close”;重定向到当前页面/close,而不是url为just close的空页面,因此请检查该页面是否包含url上的close