Ich muss den gesamten Inhalt von Iframe aus der gleichen Domäne erhalten. Whole content bedeutet, dass ich alles von <html>
(einschließlich), nicht nur <body>
Inhalt will. Inhalt wird nach dem Laden geändert, so kann ich es nicht noch einmal vom Server bekommen.Wie bekomme ich den gesamten iframe-Inhalt?
Antwort
Ich glaube ich habe die beste Lösung gefunden:
var document = iframeObject.contentDocument
var serializer = new XMLSerializer();
var content = serializer.serializeToString(document);
In content
wir voll iframe Inhalt, einschließlich DOCTYPE
Element, das in bisherigen Lösungen fehlte. Und außerdem ist dieser Code sehr kurz und sauber.
Vielen Dank. – rsharpy
Das ist total falsch, Sie haben ein Semikolon verpasst :) Vielen Dank. –
Ein Problem, das ich mit diesem Ansatz habe, ist, dass es den Iframe-Inhalt codiert. Alles wird HTML-kodiert einschließlich zum Beispiel Schriftart-Familie Stile. Wenn Sie ein Style-Tag mit font-family als "Courier New", Courier, Monospace definiert haben, werden die doppelten Anführungszeichen codiert. – Marko
Wenn es auf der gleichen Domäne ist, können Sie nur
iframe.contentWindow.document.documentElement.innerHTML
den Inhalt des iframe zu erhalten, mit Ausnahme der <html>
und </html>
Tag, wo
iframe = document.getElementById('iframeid');
Ich brauche auch '' Tag mit allen Attributen. – jesper
Sie können das Attribut 'iframe.contentWindow.document.documentElement' durchlaufen, um das umschließende HTML-Tag zu erstellen (oder verwenden Sie das nicht standardmäßige' outerHTML'). Ein Beispiel für einen browserübergreifenden Code finden Sie hier: http://help.dottoro.com/ljloliex.php. – Thai
Die erste Lösung ist weniger akzeptabel (OuterHTML kann nicht verwendet werden, weil FF dies nicht unterstützt). Es wäre einfacher, wenn jQuery mir erlaubte, das erzeugte 'html'-Tag in ein anderes" wrapper "-Tag zu verpacken und die' html() '-Methode auf diesem Wrapper zu verwenden ... Natürlich kann der Knoten nicht an dem angegebenen Punkt in der Hierarchie eingefügt werden " – jesper
$('input.test').click(function(){
$('textarea.test').text($('iframe.test').contents());
});
Sie können die literale Quelle von jeder Datei in der gleichen Domäne mit Ajax erhalten, die das html nicht zuerst -
rendert//
function fetchSource(url, callback){
try{
var O= new XMLHttpRequest;
O.open("GET", url, true);
O.onreadystatechange= function(){
if(O.readyState== 4 && O.status== 200){
callback(O.responseText);
}
};
O.send(null);
}
catch(er){}
return url;
}
function printSourceCode(text){
var el= document.createElement('textarea');
el.cols= '80';
el.rows= '20';
el.value= text;
document.body.appendChild(el);
el.focus();
}
fetchSource (location.href, printSourceCode);
" Inhalt wird nach dem Laden geändert, so dass ich es nicht noch einmal vom Server bekommen kann. " – jesper
- 1. Wie bekomme ich den gesamten RAM-Speicher des Geräts?
- 2. Wie bekomme ich den gesamten Speicher/RAM in GO?
- 3. Wie bekomme ich den gesamten Text eines Elements in xml.minidom?
- 4. Wie ändere ich den gesamten Bildschirm?
- 5. Wie kann ich den gesamten Bildschirm anzeigen?
- 6. Wie bekomme ich den Inhalt eines iframe?
- 7. Wie bekomme ich den Teilstring
- 8. Wie bekomme ich den Attributsatznamen?
- 9. Wie bekomme ich den Batteriestatus?
- 10. Wie bekomme ich den Montageort?
- 11. Wie bekomme ich den Standort?
- 12. Wie bekomme ich den Druckerstatus?
- 13. Wie bekomme ich den Downloadstatus?
- 14. Wie bekomme ich den Referenztyp?
- 15. Wie bekomme ich die CPU-Geschwindigkeit und den gesamten physischen RAM in C#?
- 16. Wie bekomme ich den gesamten Link in der Div-Tag mit Goutte
- 17. Wie bekomme ich den HTML-Code der gesamten Seite mit jQuery?
- 18. Wie bekomme ich den gesamten HTML-Quellcode von einer Webseite in Qt?
- 19. Wie bekomme ich den gesamten TestFolder-Baum im Rally Rest Toolkit für Java?
- 20. Ich bekomme den Witz nicht
- 21. Wie suche ich den gesamten Speicher eines Prozesses in gdb?
- 22. Wie forme ich den Code des gesamten Android-Betriebssystems?
- 23. Wie kann ich den gesamten Quellbaum mit einem Annotationsprozessor untersuchen?
- 24. Wie kann ich in der PowerShell den gesamten Aufgabenverlauf aktivieren?
- 25. Wie kann ich das Bild füllen den gesamten Container?
- 26. Wie kann ich den Cursor (Bild) in dem gesamten Fenster
- 27. SVN: Wie überprüfe ich den gesamten Quellbaum nur mit Amtsleitungen?
- 28. Wie kann ich ein Bild über den gesamten Hintergrund erweitern?
- 29. Wie kann ich den gesamten physischen Speicher in C# erhalten?
- 30. Wie lösche ich den gesamten Commit-Verlauf in GitHub?
Versuchen Sie, alle Ressourcen irgendwo im Browser zu speichern oder was möchten Sie erreichen? – BastiBen
Ich muss den geänderten Inhalt an den Server senden. – jesper