Cordova InAppBrowser:从注入的脚本中关闭inappbrowser实例

时间:2014-12-31 12:44:30

标签: cordova inappbrowser

我正在尝试从注入它的脚本中关闭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");ref.close() });'
      }, function(){
        console.log('script injected');
      });
    });

我在inappbrowser实例中未定义ref

1 个答案:

答案 0 :(得分:2)

ref在cordova webview上定义,但inAppBrowser拥有自己的网络视图,ref未定义,因此您无法关闭inAppBrowser这一点。

我没有对此进行测试,它有点hackish,但可能有效:

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