Den kompletten text des Dokuments als string mit javascript
Ich bin die Entwicklung einer firefox-Erweiterung, und im Idealfall in der Lage wäre, die ganze verflixte DOM als string.. vergessen Datenstruktur. Ich will nur das was ich sehe im "view source" in einen Puffer. Ich habe schon Check-out javascript Referenzen und HTMLDocument etc. mit ohne Erfolg.
Idealerweise würde ich in der Lage zu schreiben zu diesem Puffer als auch (möglich scheint, D. H. Dokument.writeLn()) ich wünschte, es war ein Dokument.read()? Bin ich nur ein js noob?
- Spezifischer werden, was genau wollen Sie erreichen mit diesem? "Schreiben in den DOM" ist nicht annähernd so trivial, wie es klingt (am Ende der Neuerstellung von Elementen, verlieren Ereignis-Bindungen, was nicht alles), und in den meisten Fällen, es ist schlicht und einfach falsch. Der DOM ist eine Datenstruktur, und es sollte geändert werden, als solche, nicht erst serialisiert und dann wieder deserialisiert.
- Ich möchte eine Suche und ersetzen Sie
- Welche Art von Inhalten sind Sie auf der Suche zu ersetzen? Text, tags, Attribute?
- nur text
- ich hatte zu Typ 3 Worte, denn der filter
- Dann sollten Sie einfach rekursiv Durchlaufen der DOM-Struktur suchen, die für den text-Knoten, während ersetzen Ihre Inhalte. Natürlich, wenn es tags zwischen dem text wird es nicht gefangen werden. Ersetzen von text mit tags in es ist nicht ganz trivial.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vielleicht möchten Sie durchqueren alle Knoten des DOM? Sie können dies tun, mit dem Dokument.childNodes, arbeitet rekursiv mit jedem Knoten.
Sollte diese Arbeit
Wie etwa
document.body.innerHTML
? Wenn Sie die Kopf-Inhalte, können Sie auch versuchendocument.getElementsByTagName('head')[0].innerHTML
und fügen Sie die zwei.document
nichtinnerHTML
Eigenschaft (zumindest nicht für Firefox).document.documentElement.innerHTML
zu greifen, die<head>
und<body>
zusammen.span
oderhead
? Zum Schutz gegen Schäden wie, dass, Sie hätte zum Parsen der HTML sowieso. So durchqueren den DOM statt.Nicht sicher, ob Sie können das laden von jQuery aus einer FF Erweiterung, aber -
Diese kam nur der andere Tag, als ein jQuery-Frage. Sie können die jQuery-Selektor $('*').html() auf, um alle html-ohne den "html" - tags.