Cordova Inappbrowser multiple windows issue

扶醉桌前 提交于 2019-12-11 11:56:46

问题


I have a problem with Cordova Inappbrowser (phonegap). Example:

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;
}

Console:

> 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** 

When I created window2 (bot2) - window1 (bot1) lost the handler. Why did it happen? How can I catch events in bot1 handler instead of bot2?

来源:https://stackoverflow.com/questions/34964619/cordova-inappbrowser-multiple-windows-issue

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!