Javascript Cordova InApp浏览器多窗口问题
我在应用浏览器(phonegap)中遇到Cordova问题。 例如:Javascript Cordova InApp浏览器多窗口问题,javascript,cordova,inappbrowser,Javascript,Cordova,Inappbrowser,我在应用浏览器(phonegap)中遇到Cordova问题。 例如: var bot1, bot2; //windows function createb1(){ //create window1 bot1 = window.open(encodeURI("http://yandex.ru?b=1"), '_blank', 'hidden=yes'); bot1.val = "bot1"; bot1.addEventListener('loadstop', fun
var bot1, bot2; //windows
function createb1(){ //create window1
bot1 = window.open(encodeURI("http://yandex.ru?b=1"), '_blank', 'hidden=yes');
bot1.val = "bot1";
bot1.addEventListener('loadstop', function(event) { //add listener
console.log("B1 loadstop " + event.url);
$.get("js/embed.js", function(data){
bot1.executeScript({code: data});
});
});
}
function createb2(){ //create window 2
bot2 = window.open(encodeURI("http://yandex.ru?b=2"), '_blank', 'hidden=yes');
bot2.val = "bot2";
bot2.addEventListener('loadstop', function(event) { //add listener
console.log("B2 loadstop " + event.url);
$.get("js/embed.js", function(data){
bot2.executeScript({code: data});
});
});
};
function goB1(){ //go page window 1
console.log(bot1);
bot1.executeScript({code: "goPage('http://yandex.com.ua?b=1');"});
}
function goB2(){ // go page window 2
console.log(bot2);
bot2.executeScript({code: "goPage('http://yandex.com.ua?b=2');"});
}
embed.js
function goPage(page){
window.location.href = page;
}
控制台:
> createb1();
B1 loadstop http://www.yandex.ru/?b=1
> goB1();
InAppBrowser {channels: Object, val: "bot1", _eventHandler: function, close: function, show: function…}
*B1 loadstop http://www.yandex.ru/ua/?b=1*
> createb2();
B2 loadstop http://www.yandex.ru/?b=2
> goB1();
InAppBrowser {channels: Object, val: "bot1", _eventHandler: function, close: function, show: function…}
**B2 loadstop http://www.yandex.ru/ua/?b=1**
当我创建window2(bot2)时,window1(bot1)丢失了处理程序。为什么会这样?如何在bot1处理程序而不是bot2处理程序中捕获事件?您有没有想过这一点?我也有同样的问题,我正在使用window.open在系统浏览器中打开一个url,然后我的应用程序松开了inappbrowser的处理程序。(我需要同时使用两者)@Publicus,很抱歉反应太晚。我记得,Inappbrowser插件只允许打开单个实例,因为它只是对话框中的一个webview。只有一个dialog和wv实例。你可以复制粘贴他们的插件,并对其稍作修改(用treir的代码创建你自己的插件)-然后你将有2个插件,这意味着你可以打开2个WebView=)你知道这一点吗?我也有同样的问题,我正在使用window.open在系统浏览器中打开一个url,然后我的应用程序松开了inappbrowser的处理程序。(我需要同时使用两者)@Publicus,很抱歉反应太晚。我记得,Inappbrowser插件只允许打开单个实例,因为它只是对话框中的一个webview。只有一个dialog和wv实例。您可以复制粘贴他们的插件,并对其进行一些更改(使用treir的代码创建您自己的插件)-然后您将拥有2个插件,这意味着您可以打开2个WebView=)