Apakah ada cara di JS untuk mendapatkan seluruh HTML dalam tag html , sebagai string?
document.documentElement.??
javascript
html
document
tostring
Kilat
sumber
sumber
document.body.parentElement.innerHTML
Jawaban:
MS menambahkan
outerHTML
daninnerHTML
properti beberapa waktu lalu.Menurut MDN ,
outerHTML
didukung di Firefox 11, Chrome 0.2, Internet Explorer 4.0, Opera 7, Safari 1.3, Android, Firefox Mobile 11, IE Mobile, Opera Mobile, dan Safari Mobile.outerHTML
ada dalam spesifikasi Parsing dan Serialisasi DOM .Lihat quirksmode untuk kompatibilitas browser untuk apa yang akan bekerja untuk Anda. Semua dukungan
innerHTML
.sumber
Anda dapat melakukan
di browser yang lebih baru dari IE 9
Lihat https://caniuse.com/#feat=xml-serializer
sumber
html
tag yang server tidak pernah benar-benar mengirim :(Saya percaya
document.documentElement.outerHTML
harus mengembalikannya untuk Anda.Menurut MDN ,
outerHTML
didukung di Firefox 11, Chrome 0.2, Internet Explorer 4.0, Opera 7, Safari 1.3, Android, Firefox Mobile 11, IE Mobile, Opera Mobile, dan Safari Mobile.outerHTML
ada dalam spesifikasi Parsing dan Serialisasi DOM .Halaman MSDN di
outerHTML
properti mencatat bahwa didukung di IE 5+. Tautan jawaban Colin ke halaman quirksmode W3C, yang menawarkan perbandingan kompatibilitas lintas-browser yang baik (untuk fitur DOM lainnya juga).sumber
Saya mencoba berbagai jawaban untuk melihat apa yang dikembalikan. Saya menggunakan Chrome versi terbaru.
Saran itu
document.documentElement.innerHTML;
dikembalikan<head> ... </body>
Saran Gaby
document.getElementsByTagName('html')[0].innerHTML;
kembali sama.Saran
document.documentElement.outerHTML;
dikembalikan<html><head> ... </body></html>
yang semuanya terpisah dari 'DOCTYPE'.Anda dapat mengambil objek doctype dengan
document.doctype;
Ini mengembalikan objek, bukan string, jadi jika Anda perlu mengekstrak detail sebagai string untuk semua doctypes hingga dan termasuk HTML5 itu dijelaskan di sini: Dapatkan DocType dari HTML sebagai string dengan JavascriptSaya hanya ingin HTML5, jadi berikut ini sudah cukup bagi saya untuk membuat seluruh dokumen:
alert('<!DOCTYPE HTML>' + '\n' + document.documentElement.outerHTML);
sumber
Anda juga dapat melakukan:
Anda tidak akan mendapatkan tag Doctype atau html, tetapi yang lainnya ...
sumber
sumber
outerHTML
ada dalam spesifikasi Parsing dan Serialisasi DOM .HANYA MUNGKIN IE:
untuk FF naik dari 1.0:
dapat bekerja di FF. (Memperlihatkan 300 karakter SANGAT PERTAMA dari awal teks sumber SANGAT, sebagian besar doctype-defs.)
TAPI waspada, bahwa "Save As" normal-Dialog FF MUNGKIN TIDAK menyimpan keadaan halaman saat ini, melainkan X / h / tml-sumber-teks yang aslinya dimuat !! (POST-up ss ke beberapa temp-file dan redirect ke yang mungkin memberikan teks sumber yang dapat disimpan DENGAN perubahan / suntingan sebelum dibuat untuk itu.)
Meskipun FF mengejutkan dengan pemulihan yang baik pada "kembali" dan dimasukkannya NICE status / nilai pada "Simpan (sebagai) ..." untuk BIDANG input-seperti, textarea dll., Bukan pada elemen dalam contenteditable / designMode ...
Jika BUKAN xhtml- resp. xml-file (tipe mime, BUKAN hanya nama file-ekstensi!), orang dapat menggunakan document.open/write/close untuk SETELAH appr. konten ke layer sumber, yang akan disimpan pada dialog save pengguna dari File / Save me of FF. lihat: http://www.w3.org/MarkUp/2004/xhtml-faq#docwrite resp.
https://developer.mozilla.org/en-US/docs/Web/API/document.write
Netral untuk pertanyaan X (ht) ML, coba "view-source: http: // ..." sebagai nilai src-attrib dari iframe (skrip buatan !?), - untuk mengakses iframe- dokumen dalam FF:
<iframe-elementnode>.contentDocument
, lihat google "mdn contentDocument" untuk appr. anggota, seperti 'textContent' misalnya. 'Sudah bertahun-tahun yang lalu dan tidak suka merangkak untuk itu. Jika masih sangat mendesak, sebutkan ini, bahwa saya harus menyelam ...sumber
sumber
<html ...>
tag.Gunakan
document.documentElement
.Pertanyaan yang sama dijawab di sini: https://stackoverflow.com/a/7289396/2164160
sumber
.outerHTML
dan untuk mendapatkandocument.doctype
, dan jawaban yang paling lengkap adalah milik Paolo .Untuk juga mendapatkan hal-hal di luar
<html>...</html>
, yang paling penting<!DOCTYPE ...>
deklarasi, Anda bisa berjalan melalui document.childNodes, mengubah masing-masing menjadi string:Saya menerbitkan kode ini sebagai document-outerhtml pada npm.
sunting Catatan kode di atas tergantung pada suatu fungsi
doctypeToString
; implementasinya bisa sebagai berikut (kode di bawah ini diterbitkan pada npm sebagai doctype-to-string ):sumber
Saya selalu menggunakan
Mungkin bukan cara yang benar tetapi saya bisa memahaminya ketika saya melihatnya.
sumber
<html...>
tag.Saya hanya perlu html doctype dan harus berfungsi dengan baik di IE11, Edge dan Chrome. Saya menggunakan kode di bawah ini berfungsi dengan baik.
dan dalam anchor tag Anda gunakan seperti ini.
Contoh
sumber
Saya menggunakan
outerHTML
elemen (<html>
wadah utama ), danXMLSerializer
untuk hal lain termasuk<!DOCTYPE>
, komentar acak di luar<html>
wadah, atau apa pun yang mungkin ada di sana. Tampaknya spasi putih tidak disimpan di luar<html>
elemen, jadi saya menambahkan baris baru secara default dengansep="\n"
.sumber
Anda harus mengulang melalui childNodes dokumen dan mendapatkan konten outerHTML.
di VBA terlihat seperti ini
menggunakan ini, memungkinkan Anda untuk mendapatkan semua elemen halaman web termasuk <! DOCTYPE> node jika ada
sumber
Cara yang benar sebenarnya:
webBrowser1.DocumentText
sumber