2017-02-21 102 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'}) 
}); 

這是爲我工作。