Frage

Ich entwickle eine Firefox-Erweiterung, basierend auf dieses Tutorial die ein FF 2,0 Verlängerung (zweiter Teil des Lernprogramms wird bei diese URL )

Die Hauptsache ist, was wichtig ist, ist, dass es verwendet

<iframe id="contentview" src="http://www.ibm.com/developerworks/web" flex="2"/>

Im Backend-Code, wenn die START-Taste klicken, geschieht dies:

contentview.contentDocument.location.href = urlbox.value;

//Use Firefox XPath to get the raw text of the document
var doctext = contentview.contentDocument.evaluate(
    "string(.)", document, null, XPathResult.STRING_TYPE, null).stringValue;

Ich erhalte eine Fehlermeldung mit dem XPath, aber das ist nicht meine Frage. Das Problem Ich habe mit FF 3.0 ist, dass der Wert auf contentdocument der alten Seite bezieht sich geladen, nicht auf den von der href-Änderung geladen.

Also meine Frage ist: Wie kann ich ein ähnliches Fenster erstellen, aber jemand benachrichtigt werden, wenn das geladene Dokument abgeschlossen ist, so kann ich seinen DOM zugreifen

War es hilfreich?

Lösung

Aktualisiert: Zuerst müssen Sie das Ladeereignis des Fensters zu handhaben dann einen Ereignis-Listener zum iframe Elemente, das Sie hinzufügen

window.addEventListener("load",Listen,false);
function Listen()
{
  var frame = document.getElementById("contentview");
  frame.addEventListener("DOMContentLoaded", DomLoadedEventHandler, true);          
}

    function DomLoadedEventHandler() {
    var frame = document.getElementById("contentview");
    alert(frame.contentDocument.location.href);
    }

ersetzen "DomLoadedEventHandler" mit Ihrem Event-Handler-Namen.

Ich empfehle Ihnen, einen Blick auf die offizielle Seite von Mozilla, um alles über Firefox-Erweiterungen zu lernen

http://developer.mozilla.com

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top