ändern - javascript tutorial deutsch




Wie kann ich eine HTML-Zeile in ein DOM-Objekt in einer Firefox-Erweiterung umwandeln? (4)

Ajaxian hatte tatsächlich einen Beitrag zum Einfügen / Abrufen von HTML aus einem iframe heute. Sie können wahrscheinlich das js-Snippet verwenden, das sie dort veröffentlicht haben.

Bezüglich der Handhabung des Schließens eines Browsers / einer Registerkarte können Sie an das Ereignis onbeforeunload ( http://msdn.microsoft.com/en-us/library/ms536907(VS.85).aspx ) anhängen und tun, was immer Sie tun müssen ..

Ich lade eine Webseite (Tag-Suppe HTML) mit XMLHttpRequest herunter und ich möchte die Ausgabe nehmen und sie in ein DOM-Objekt umwandeln, das ich dann XPATH-Fragen auf laufen lassen kann. Wie konvertiere ich von einem String in ein DOM-Objekt?

Es scheint, dass die allgemeine Lösung darin besteht, einen versteckten iframe zu erstellen und den Inhalt des Strings in diesen zu werfen. Es wurde davon gesprochen, DOMParser zu aktualisieren, um Text / HTML zu unterstützen, aber ab Firefox 3.0.1 erhalten Sie immer noch ein NS_ERROR_NOT_IMPLEMENTED wenn Sie es versuchen.

Gibt es eine Option neben dem versteckten iframe Trick? Und wenn nicht, was ist der beste Weg, um den iframe-Trick auszuführen, damit Ihr Code außerhalb des Kontexts von derzeit geöffneten Registerkarten funktioniert (so dass das Schließen von Registerkarten Code nicht vermasselt usw.)?

Dies ist ein Beispiel dafür, warum ich nach einer anderen Lösung als dem iframe-Hack suche. Wenn ich den ganzen Code schreiben muss, um eine robuste Lösung zu haben, dann suche ich lieber nach etwas anderem.


Sie möchten also eine Webseite als XML-Objekt mit Javascript herunterladen, aber keine Webseite verwenden? Da Sie keine Kontrolle darüber haben, was der Benutzer tun wird (Schließen von Registerkarten oder Fenstern oder ähnlichem), müssten Sie dies wie ein OSX-Dashboard-Widget oder eine separate Anwendung tun. Eine Firefox-Erweiterung funktioniert ebenfalls, es sei denn, Sie müssen sich darum sorgen, dass der Benutzer den Browser schließt.


Versuchen Sie, ein div zu erstellen

document.createElement( 'div' );

Und dann setzen Sie das Tag Suppe HTML auf die innereHTML des div. Der Browser sollte das in XML verarbeiten, das dann analysiert werden kann.

Die innerHTML-Eigenschaft nimmt eine Zeichenfolge entgegen, die eine gültige Kombination von Text und Elementen angibt. Wenn die innerHTML-Eigenschaft festgelegt ist, ersetzt die angegebene Zeichenfolge den vorhandenen Inhalt des Objekts vollständig. Wenn die Zeichenfolge HTML-Tags enthält, wird die Zeichenfolge geparst und formatiert, sobald sie in das Dokument eingefügt wird.


Gibt es eine Option neben dem versteckten iframe Trick?

Leider nein, jetzt nicht. Ansonsten würde der Microsummary-Code, auf den Sie verweisen, ihn stattdessen verwenden.

Und wenn nicht, was ist der beste Weg, um den iframe-Trick auszuführen, damit Ihr Code außerhalb des Kontexts von derzeit geöffneten Registerkarten funktioniert (so dass das Schließen von Registerkarten Code nicht vermasselt usw.)?

Der von Ihnen zitierte Code verwendet das aktuelle Browserfenster, sodass das Schließen von Registerkarten das Parsen nicht beeinträchtigt. Das Schließen dieses Browser-Fensters bricht die Ladeoperation ab, aber Sie können damit umgehen (entdecken Sie, dass die Ladeoperation abgebrochen wird, und starten Sie sie beispielsweise in einem anderen Fenster neu), und dies geschieht nicht sehr oft.

Sie benötigen ein DOM-Fenster, damit der Iframe ordnungsgemäß funktioniert. Daher gibt es im Moment keine saubere Lösung (wenn Sie den Mozilla-Parser verwenden möchten).





dom