2017-02-21 101 views
2

我在如何使用离子2中inAppBrowser插件的“executeScript”方法?

let browser = new InAppBrowser('http://example.com/test', '_self'); 
browser.executeScript({code: "(function() { alert(123); })()"}); 

当我按一下按钮,inAppBrowser打开网页的点击事件的代码,但该脚本不运行。
我关闭浏览器,然后再次单击该按钮,现在脚本确实运行。

为什么它不是第一次运行?

回答

3

在InAppBrowser.addEventListener(loadstart,loadstop,loaderror)中添加executeScript,它会在第一次运行。我使用离子1,但我想它也可以在离子2中工作。我在下面添加了一个示例代码。 (这是它在离子1中的样子)。

browser.addEventListener('loadstart', function(){ 
      browser.executeScript({code: "(function() { alert(123); })()"}); 
     }) 
+0

当我尝试添加EventListener时,它告诉我'属性'addEventListener'在'InAppBrowser'类型中不存在。这是怎么回事? – rashadb

+0

是否安装了[cordova-plugin-inappbrowser](https:// github。 com/apache/cordova-plugin-inappbrowser)? –

+0

我做过了,这种方法不是Ionic包装版本的一部分,我通过使用常规的cordova版本获得了访问权限。 – rashadb

1

它不再以这种方式工作。尝试一下!

browser.on('loadstop').subscribe(() => { 
    browser.executeScript({code: 'your_code'}) 
}); 

这是为我工作。