Saya melihat istilah ini digunakan secara bergantian sebagai lingkungan global untuk DOM. Apa perbedaannya (jika ada) dan kapan saya harus menggunakan masing-masing?
javascript
TimeEmit
sumber
sumber
window
dengan viewport . Awindow
adalah objek JavaScript untuk tab browser atau<iframe>
(atau usang<frame>
). The viewport adalah persegi panjang dari yang diberikandocument
terlihat dalam tab atau frame.Nah, jendela adalah hal pertama yang dimuat ke browser. Objek jendela ini memiliki sebagian besar properti seperti panjang, innerWidth, innerHeight, nama, jika telah ditutup, orang tuanya, dan banyak lagi.
Lalu bagaimana dengan objek dokumen? Objek dokumen adalah html, aspx, php, atau dokumen lain yang akan dimuat ke browser. Dokumen sebenarnya dimuat di dalam objek jendela dan memiliki properti yang tersedia untuknya seperti judul, URL, cookie, dll. Apa artinya ini? Itu berarti jika Anda ingin mengakses properti untuk jendela itu adalah window.property, jika itu dokumen itu adalah window.document.property yang juga tersedia singkat sebagai document.property.
Tampaknya cukup sederhana. Tetapi apa yang terjadi setelah IFRAME diperkenalkan?
sumber
Secara singkat, dengan lebih detail di bawah ini,
window
adalah konteks eksekusi dan objek global untuk JavaScript konteks itudocument
berisi DOM, diinisialisasi dengan parsing HTMLscreen
menggambarkan layar penuh tampilan fisikLihat referensi W3C dan Mozilla untuk perincian tentang objek-objek ini. Hubungan paling mendasar di antara ketiganya adalah bahwa setiap tab peramban memiliki sendiri
window
, danwindow
memilikiwindow.document
danwindow.screen
properti. Tab browserwindow
adalah konteks global, jadidocument
danscreen
lihatwindow.document
danwindow.screen
. Rincian lebih lanjut tentang tiga objek di bawah ini, berikut JavaScript Flanagan: Definitive Guide .window
Setiap tab browser memiliki
window
objek tingkat atas sendiri . Setiap elemen<iframe>
(dan usang<frame>
) memilikiwindow
objek sendiri juga, bersarang di dalam jendela induk. Masing-masing jendela ini mendapatkan objek global tersendiri.window.window
selalu merujukwindow
, tetapiwindow.parent
danwindow.top
mungkin merujuk ke melampirkan jendela, memberikan akses ke konteks eksekusi lainnya. Selaindocument
danscreen
dijelaskan di bawah,window
properti termasuksetTimeout()
dansetInterval()
mengikat penangan acara ke timerlocation
memberikan URL saat inihistory
dengan metodeback()
danforward()
memberikan riwayat tab yang bisa berubahnavigator
menjelaskan perangkat lunak browserdocument
Setiap
window
objek memilikidocument
objek yang akan dirender. Objek-objek ini menjadi bingung sebagian karena elemen-elemen HTML ditambahkan ke objek global ketika diberi id unik. Misalnya, dalam cuplikan HTMLelemen paragraf dapat dirujuk oleh salah satu dari yang berikut:
window.holyCow
atauwindow["holyCow"]
document.getElementById("holyCow")
document.body.firstChild
document.body.children[0]
screen
The
window
objek juga memilikiscreen
objek dengan sifat yang menggambarkan tampilan fisik:properti layar
width
danheight
merupakan layar penuhproperti layar
availWidth
danavailHeight
hapus bilah alatBagian layar yang menampilkan dokumen yang diberikan adalah viewport dalam JavaScript, yang berpotensi membingungkan karena kami menyebut bagian aplikasi dari layar sebagai jendela ketika berbicara tentang interaksi dengan sistem operasi. The
getBoundingClientRect()
Metode dari setiapdocument
elemen akan mengembalikan objek dengantop
,left
,bottom
, danright
sifat-sifat yang menggambarkan lokasi dari elemen di viewport.sumber
window.onload
menggunakan objek dokumen?Ini
window
adalah objek global aktual.The
screen
adalah layar, mengandung sifat tentang tampilan pengguna.Di
document
situlah DOM berada.sumber
document
bisa juga bisawindow.document
,screen
bisawindow.screen
, danwindow
bisawindow.window
(atauwindow.window.window
) :-Pwindow
merupakan variabel global, yang menjadikannya properti dariwindow
objek global . :-)itu
window
berisi segalanya, jadi Anda bisa meneleponwindow.screen
danwindow.document
mendapatkan elemen-elemen itu. Lihat biola ini, cukup cetak isi setiap objek: http://jsfiddle.net/JKirchartz/82rZu/Anda juga dapat melihat konten objek di alat pembakar / dev seperti ini:
window
adalah akar dari segalanya,screen
hanya memiliki dimensi layar, dandocument
merupakan objek DOM teratas. sehingga Anda dapat menganggapnyawindow
sepertidocument
...sumber
Jendela adalah hal pertama yang dimuat ke browser. Objek jendela ini memiliki sebagian besar properti seperti panjang, innerWidth, innerHeight, nama, jika telah ditutup, orang tuanya, dan banyak lagi.
Objek dokumen adalah html, aspx, php, atau dokumen lain yang akan dimuat ke browser. Dokumen sebenarnya dimuat di dalam objek jendela dan memiliki properti yang tersedia untuknya seperti judul, URL, cookie, dll. Apa artinya ini? Itu berarti jika Anda ingin mengakses properti untuk jendela itu adalah window.property, jika itu dokumen itu adalah window.document.property yang juga tersedia singkat sebagai document.property.
sumber