Problem beim Eingeben eines externen Skripts mit der executeScript-Methode in Cordova

8

Ich schreibe eine Dummy-App, um zu testen, wie die executeScript () -Methode in Cordovas InAppBrowser-Plugin funktioniert. Insbesondere versuche ich, einen JavaScript-Code in eine Webansicht zu injizieren.

Hier ist meine index.html Datei:

%Vor%

Und die Datei index.js

%Vor%

und zuletzt die externaljavascriptfile.js

%Vor%

Wenn ich versuche, JavaScript-Code direkt zu injizieren (dh die Zeile "ref.executeScript ({code:" alert ('Injected Code') "}))") zu entfernen, funktioniert alles und die Warnung wird nach dem Laden der Seite ausgelöst , aber wenn ich versuche, ein externes Javascript zu injizieren (zB mit der Zeile "ref.executeScript ({file:" externaljavascriptfile.js "});" passiert nichts.

Vermisse ich etwas?

    
Antonio Giovanni Schiavone 03.04.2014, 10:45
quelle

4 Antworten

9

Eigentlich glaube ich, dass Sie die Antwort bereits kennen.

executeScript() Methode in der untergeordneten WebView ausgeführt.

%Vor%

In Ihrem Code wird executeScript() method auf http://www.example.net/externaljavascriptfile.js referenziert, nicht in Ihrer Skriptdatei im Verzeichnis /www/js cordova. Weil die executeScript() -Methode JavaScript in kindview eingibt, wie Sie wissen.

Sie können den Code mit unten testen. Ich habe die Datei auf meiner Website abgelegt.

%Vor%

FYI Wenn Sie die Daten aus der Kindansicht abrufen möchten, können Sie den Rückruf verwenden.

%Vor%

In externaljavascriptfile.js :

%Vor%     
Edward 30.04.2014, 12:02
quelle
9

Hast du das inappbrowser Plugin installiert?

Ich arbeite wie folgt in Android:

BEARBEITEN: Für cordova 7 aktualisiert

Erstellen Sie das phonegap-Projekt

%Vor%

Update index.js - hier ist meine onDeviceReady-Funktion:

%Vor%

Auf meinem HTC bereitstellen

%Vor%

externe Skriptdatei ist hier

Die vollständige Arbeitskopie dieses Projekts lautet hier

Grüße,

Av

    
Avner 01.05.2014 16:53
quelle
4

Verwenden Sie Ajax, um JS-Dateidaten zu erhalten, und injizieren Sie sie dann mit dem Skript execute

%Vor%     
Aman Uppal 03.01.2015 09:43
quelle
2

externaljavscriptfile.js ist nicht in Ihrer HTML-Datei verlinkt. Sie müssen es mit dem

einschließen %Vor%

tag oder um es dynamisch zu laden:

%Vor%

HINWEIS: Sie müssen Ihren Code möglicherweise in eine Funktion einfügen, um ihn auszuführen.

Ich hoffe, es funktioniert.

    
IlToro 16.04.2014 14:50
quelle