Ich entwickle eine Firefox-Erweiterung, die eine Schaltfläche in der Statusleiste platziert. Wenn auf die Schaltfläche geklickt wird, fügt die Erweiterung etwas Javascript in die aktuelle Seite ein. Dieses Javascript hat eine Funktion, die ich mit einigen Parametern aufrufen möchte. Ich habe es geschafft, den Code zu injizieren, ich habe die Seite über Firebug inspiziert und überprüft, dass der JS injiziert wurde. Wie kann ich eine Javascript-Funktion auf der Seite von meiner Erweiterung aufrufen?Ausführen von Javascript-Code in eine Seite beim Entwickeln einer Firefox-Erweiterung
--Mehr Informationen
Hier ist der Code, den ich meinen Javascript bin mit injizieren:
var doc = window.content.document;
//Add the script
var visibilityJS = doc.createElement("script");
visibilityJS.setAttribute("type", "text/javascript");
visibilityJS.setAttribute("charset", "UTF-8");
visibilityJS.setAttribute("src", "chrome://visibility/content/scripts/visibility.js");
head.appendChild(visibilityJS);
//Call the function
alert("Executing testfunction");
window.content.document.defaultView.testFunction();
..und der Code in meiner JS-Datei, die ich injizieren werde. d.h. Sichtbarkeit.js
window.testFunction = function() {
alert("Message");
}
Danke.
Hallo Felix. Ich konnte nicht recht herausfinden, was du meintest. Ich habe versucht, die Dokumentation zu lesen, d. H. Die Seite, auf die Sie hingewiesen haben, aber ich konnte sie immer noch nicht ganz verstehen. Ich habe 'window.content.document.' versucht, aber das hat nicht funktioniert. Würdest du zufällig ein einfaches Beispiel oder etwas haben? Vielen Dank. –
@Mridang Agarwalla: Sie sind in der Nähe. 'window.content.document' sollte Ihnen dasselbe wie' gBrowser.contentDocument' geben. Aber das gibt Ihnen das "Dokument" -Objekt der Website. Globale Variablen sind immer Eigenschaften des 'Fenster'-Objekts der Website. 'document.defaultView' sollte Ihnen dieses Objekt geben. Versuchen Sie 'window.content.document.defaultView.'. –
Hallo nochmal Felix. Ich kann immer noch nicht darauf zugreifen. Ich bekomme den folgenden Fehler - 'window.content.document.defaultView.testFunction' ist keine Funktion. Ich habe versucht, 'testFunction' von der JavaScript-Konsole aus aufzurufen, und es funktionierte, aber die Erweiterung kann immer noch nicht darauf zugreifen. Füge ich etwas hinzu oder modifiziere meinen injizierten Javascript-Code in irgendeiner Weise? Danke noch einmal. –