2017-02-21 8 views
2

Ich habe diesen Code in einem Click-EreignisWie verwende ich die "executeScript" -Methode des inAppBrowser-Plugins in ionic 2?

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

Wenn ich auf die Schaltfläche klicken, inAppBrowser die Seite öffnet, aber das Skript nicht ausgeführt.
Ich schloss den Browser und klickte dann erneut auf die Schaltfläche, jetzt wird das Skript ausgeführt.

Warum läuft es nicht zum ersten Mal?

Antwort

3

Fügen Sie executeScript in einem InAppBrowser.addEventListener (loadstart, loadstop, loaderror) hinzu, dann wird es zum ersten Mal ausgeführt. Ich verwende ionische 1, aber ich denke, es wird auch in ionischen 2 funktionieren. Ich habe einen Beispielcode unten hinzugefügt. (So ​​sieht es in ionischen 1 aus).

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

Wenn ich versuche, denEventListener hinzuzufügen, sagt er mir, dass "Eigenschaft 'addEventListener' nicht existiert in Typ 'InAppBrowser'. Was ist hier los? – rashadb

+0

hast du den [cordova-plugin-inappbrowser] (https: // github. com/apache/cordova-plugin-inappbrowser)? –

+0

Ich habe und diese Methode ist kein Teil der ionischen gewickelten Version.Ich bekam Zugang zu ihm mit der regulären Cordova-Version. – rashadb

1

Es funktioniert nicht mehr auf diese Weise. Versuch es!

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

Dies funktioniert für mich.

Verwandte Themen