Frage

Ich erstelle eine Firefox-Erweiterung für Demozwecke. Ich eine bestimmte JavaScript-Funktion in dem Dokument von der Nebenstelle anzurufen. Ich schrieb dies in meinem HTML-Dokument (nicht in Erweiterung, sondern eine Seite, die von Firefox geladen ist):

document.funcToBeCalled = function() {
   // function body
};

Dann wird die Erweiterung dieses auf ein Ereignis ausgeführt werden:

var document = Application.activeWindow.activeTab.document;
document.funcToBeCalled();

Doch es stellt sich ein Fehler, dass funcToBeCalled sagen, ist nicht definiert.

Hinweis: Ich könnte ein Element auf dem Dokument erhalten, indem document.getElementById(id); Aufruf

War es hilfreich?

Lösung

Es ist aus Gründen der Sicherheit, die Sie nur begrenzten Zugang zu der Content-Seite von Erweiterung. Siehe XPCNativeWrapper und Sicher Inhalt DOM aus Chrom Zugriff

Wenn Sie die Seite zu steuern, ist der beste Weg, dies zu tun, ist ein Ereignis-Listener in der Seite und versenden Sie ein Ereignis aus Ihrer Erweiterung (addEventListener auf der Seite, dispatch in der Verlängerung) einzurichten.

Ansonsten finden Sie unter http://groups.google.com/group /mozilla.dev.extensions/msg/bdf1de5fb305d365

scroll top