Artikel ini memberi Anda pengetahuan yang relevan tentang JavaScript. Artikel ini terutama memperkenalkan masalah terkait tentang operasi BOM, termasuk peristiwa umum objek jendela, mekanisme eksekusi JavaScript, dll. Mari kita lihat bersama-sama. Peristiwa umum dari objek jendela
Peristiwa pemuatan jendela:
- window.onload: peristiwa pemuatan halaman. Peristiwa ini dipicu ketika konten dokumen dimuat sepenuhnya (termasuk gambar, file skrip, file CSS, dll.) dan fungsi pemrosesan dipanggil.
- document.addEventListener('DOMContentLoaded', function(){}): Hanya ketika pemuatan DOM selesai, tidak termasuk style sheet, gambar, flash, dan
kejadian kompatibilitas untuk menyesuaikan ukuran jendela:
- window.onresize: Menyesuaikan peristiwa pemuatan ukuran jendela
window Metode .open() dapat digunakan untuk menavigasi ke URL tertentu atau untuk membuka jendela browser baru.
- Metode ini menerima 4 parameter: URL yang akan dimuat, jendela target, string karakter, dan representasi jendela baru dalam riwayat browser. Apakah akan mewakili nilai Boolean dari halaman yang sedang dimuat
window.open("http://www.wrox.com/", "wroxWindow","height=400,width=400,top=10,left=10,resizable=yes");
timer:
- setInterval(handler: any, timeout?: long, argument…: any): loop
- clearInterval(handle?: long): batalkan setInterval
- setTimeout(handler: any, timeout?: long , argument…: any) : One-time
- clearTimeout(handle?: long): Cancel setTimeout
window.scroll(x, y)
window.scrollTo(x, y): Keduanya sama kegunaannya untuk mengubah posisi horizontal dan scroll bar vertikal, dengan syarat harus ada Scroll bar yang ada di halaman
window.scrollBy(x, y): Pengguliran kumulatif dari scroll bar, angka positif turun, angka negatif naik window.scrollBy(0, 10) : Ketika dipanggil setiap 100 milidetik, bilah gulir menggerakkan
jendela 10 piksel. kotak dialog getComputedStyle(elem, pseudo-class)
alert
- alert("prompt string")
- memunculkan kotak peringatan dan menampilkan teks string prompt di kotak peringatan
- konfirmasi
- konfirmasi ("string prompt")
- menampilkan kotak konfirmasi dan konfirmasi. String prompt ditampilkan di dalam kotak.
- Ketika pengguna mengklik tombol "Konfirmasi", ia mengembalikan nilai true, dan mengklik "Batal" untuk mengembalikan
- prompt prompt yang salah ("string prompt" , "nilai default")
- menampilkan kotak input dan menampilkan karakter prompt di kotak input String, menunggu input pengguna.
- Ketika pengguna mengklik tombol "Konfirmasi", input pengguna dikembalikan , nilai null dikembalikan.
Mekanisme eksekusi JavaScript
menjalankan skrip js dan memasukkan kode js ke dalam tumpukan eksekusi dalam mode eksekusi sinkron. Saat menjalankan tumpukan eksekusi, ia menemukan kode asinkron JS (peristiwa, pengatur waktu, ajax, pemuatan sumber daya , kesalahan) dimasukkan ke dalam API web (antrian tugas). Ketika kode dalam tumpukan eksekusi selesai, buka antrian tugas dan ambil yang pertama untuk dieksekusi. Setelah eksekusi, Dapatkan satu dari antrian tugas dan jalankan, dan jalankan berulang kali (event loop) hingga eksekusi dalam antrian tugas selesai.
Objek lokasi
window.history digunakan untuk mendapatkan URL alamat halaman saat ini dan mengarahkan browser ke halaman baru.
http://www.itcast.cn:80/index.html?name=andy&age=1#link
http: protokol komunikasi www.itcast.cn: nama domain 80: port index.html: path?name=andy&age=1: parameter #link fragment: titik jangkar,
atribut objek tautan:
- href*: dapatkan atau atur seluruh
- host URL: kembalikan nama host (nama domain)
- nama host: Tetapkan atau kembalikan nama host dari
- kiriman URL saat ini: Kembalikan nomor port
- pathname: Kembalikan pencarian jalur
- *: Kembalikan parameter
- hash: Kembalikan fragmen (konten setelah #)
- protokol: Setel atau kembalikan metode objek protokol
dari URL saat ini:
- tetapkan: Seperti href, Anda dapat melompat ke halaman (juga disebut halaman pengalihan)
- ganti: mengganti halaman saat ini, karena riwayat tidak dicatat, Anda tidak dapat kembali ke halaman
- memuat ulang : memuat ulang halaman, setara dengan
objek navigator
fungsi penyegaran
navigator: objek yang merangkum informasi konfigurasi browser
- cookieEnabled Apakah cookie diaktifkan di
- cookie browser saat ini: Ruang penyimpanan pada klien, dan kapasitasnya kecil. Browser yang berbeda memiliki ukuran yang berbeda, dan kuncinya dapat disimpan secara permanen
- Kekurangan: Khususnya
plugin - informasi pribadi yang mudah bocor
- merangkum semua informasi plug-in yang diinstal oleh
- nama browser agen pengguna, nomor versi kernel, dan rangkaian karakter lainnya
- secara online Apakah komputer offline?
- platform mengembalikan platform sistem operasi yang menjalankan browser
- appCodeName mengembalikan nama kode browser
- appName mengembalikan nama browser
- appVersion mengembalikan informasi platform dan versi
objek riwayat browser
window.objek sejarah menyertakan kumpulan riwayat browser (url)
- bagian belakang browser Fungsi: history.back()
- Fungsi penerusan browser: history.forward()
- Memasukkan halaman tertentu dalam riwayat: history.go()
objek layar
window.objek layar berisi informasi tentang pengguna
// layar: Dapatkan ukuran resolusi perangkat tampilan // Resolusi penuh: screen.widht/height
// Cara mengidentifikasi jenis klien yang kompatibel dengan semua lebar klien // Layar besar, layar sedang, layar kecil, layar ultra-kecil // lg md sm xs
// Telepon papan pc TV
//Lebar >= 1200 >=992 >= 768 < 768
//Resolusi yang tersisa setelah menghapus taskbar // screen.availHeight/availWidth
- Lebar layar yang tersedia: screen.availWidth
- Tinggi layar yang tersedia: screen.availHeight
- Tinggi layar: screen.Height
- Lebar layar: screen.Width
- Jumlah digit warna layar : colorDepth
elemen offset Seri offset
secara dinamis dapat memperoleh posisi (offset), ukuran, dll. elemen.
- Dapatkan
- jarak
- elemen ke posisi elemen induk
- nilai tidak memiliki unit.
Atribut seri offset yang umum digunakan:
- elemen.offsetParent: Mengembalikan elemen induk dengan posisi sebagai elemen. Jika elemen induk tidak diposisikan, isi
- dikembalikan elemen di atas elemen induk yang diposisikan.offsetLeft
- *: Mengembalikan pita relatif elemen. Terdapat offset di sebelah kiri elemen induk yang diposisikan.offsetWidth
- : Mengembalikan lebar elemen itu sendiri termasuk padding, batas, dan konten , tanpa elemen
- unit.offsetHeight: Mengembalikan tinggi dirinya sendiri termasuk padding, batas, dan konten, tanpa
elemen unit area visual klien Seri ini
secara dinamis memperoleh atribut umum
seperti ukuran batas dan ukuran elemen elemen
: - element.clientTop: ukuran batas atas elemen
- element.clientLeft: ukuran batas kiri elemen
- element.clientWidth*: mengembalikan lebar dirinya sendiri termasuk padding dan area konten, tidak termasuk batas, tanpa
- elemen unit.clientHeight*: Mengembalikan tinggi itu sendiri termasuk padding dan area konten, tidak termasuk batas, tanpa
elemen unit gulir seri gulir
secara dinamis memperoleh ukuran dan jarak gulir elemen.
Atribut umum
- elemen.srcollTop*: mengembalikan jarak sisi atas yang digulung, tanpa elemen unit.srcollLeft
- *: Mengembalikan jarak sisi yang digulung jarak kiri, tanpa
- elemen satuan.srcollWidth: Mengembalikan lebar sebenarnya, tanpa batas, tanpa
- elemen satuan.srcollHeight: Mengembalikan tinggi sebenarnya, tidak mengandung batas dan tidak memiliki
bilah gulir satuan. Saat menggulir, acara onscroll akan dipicu
untuk melihat jarak gulir bilah gulir.
window.pageXOffset/pageYOffset
IE8 dan di bawahnya tidak kompatibel dengan document.body/documentElement.scrollLeft/scrollTop
Kompatibilitasnya membingungkan dan membutuhkan waktu lama untuk menambahkan dua nilai, karena tidak mungkin agar dua nilai memiliki nilai pada saat yang sama . Metode kompatibilitas enkapsulasi, temukan jarak bergulir roda bilah gulir getScrollOffet()
/*
Meringkas metode untuk mendapatkan jarak gulir dari bilah gulir. Pengembalian: x: jarak gulir dari bilah gulir horizontal y: jarak gulir dari bilah gulir vertikal */function getScrollOffet(){
if(jendela.halamanXOffset){
return {//{} objek harus setelah kata kunci, jika tidak, sistem akan secara otomatis menambahkannya; maka nilai yang dikembalikan tidak akan ditentukan
x : jendela.halamanXOffset,
y : window.pageYOffset }
}else{//Kompatibel dengan IE8 dan di bawahnya return {
x : dokumen.body.scrollLeft + dokumen.documentElement.scrollLeft,
y : dokumen.body.scrollTop + dokumen.documentElement.scrollTop }
}}
Lihat ukuran
window.innerWidth/innerHeight
tidak kompatibel dengan IE8 dan di bawahnya (catatan: lebar dan tinggi di sini tidak termasuk tinggi bilah menu, bilah alat, bilah gulir, dll.) document.documentElement.clientWidth/clientHeight
dalam mode standar, browser apa pun kompatibel dengan document.body.clientWidth/clientHeight
Ini adalah metode kompatibilitas enkapsulasi browser yang cocok untuk situasi aneh. Mengembalikan ukuran viewport browser getViewportOffset()
/*Encapsulation mengembalikan nilai pengembalian ukuran viewport browser :
w: lebar area pandang h: tinggi area pandang*/fungsi getViewportOffset(){
if(jendela.Lebar Dalam){
kembali {
w : jendela.lebar dalam,
h : jendela.innerHeight }
}else{ //Kompatibel dengan browser IE8 dan di bawahnya if(document.compatMode == 'BackCompat'){
//Return { dalam mode rendering yang aneh
w : dokumen.body.clientWidth,
h : dokumen.body.clientHeight }
}kalau tidak{
//Mode standar kembali {
w : dokumen.documentElement.clientWidth,
h : dokumen.documentElement.clientHeight }
}
}}console.log(document.compatMode); // Mode aneh BackCompat // Mode standar CSS1Compat
untuk melihat ukuran geometris elemen. Pemahaman baru ES5 tentang
domElement.getBoundingClientRect()
memiliki kompatibilitas yang baik; , Atribut seperti atas, kanan, dan bawah. Kiri dan atas mewakili koordinat X dan Y dari sudut kiri atas elemen. Kanan dan bawah mewakili koordinat X dan Y dari sudut kanan bawah elemen Atribut lebar tidak diterapkan di IE versi lama. Hasil yang dikembalikan tidak real-time. '
// Dapatkan posisi elemen dalam fungsi dokumen getElementPosition(target){
//Mendukung metode BoundingClientRect() if(0 && target.getBoundingClientRect){
var pos = target.getBoundingClientRect();
return { // Saat bilah gulir bergerak, tambahkan posisi x bilah gulir: pos.left + Math.max(document.body.scrollLeft, document.documentElement.scrollLeft),
y : pos.top + Math.max(document.body.scrollTop, document.documentElement.scrollTop)
}
} kalau tidak {
var pos = {
kiri: 0,
atas : 0
}
var _elm = sasaran;
while(target.offsetParent){
if(_elm == target){//Akumulasi kiri dan atas untuk pertama kalinya
pos.kiri += target.offsetKiri;
pos.top += target.offsetTop;
}kalau tidak{
pos.kiri += target.offsetLeft + target.klienLeft;
pos.top += target.offsetTop + target.clientTop;
}
// target menugaskan kembali target = target.offsetParent;
}
kembali { x : pos.kiri, y : pos.atas}
}}
Properti
status bar
- defaultStatus mengubah status tampilan default bilah status browser
- untuk sementara mengubah
posisi jendela
tampilan status browser - IE
- screenLeft menyatakan koordinat x sudut kiri atas jendela
- screenTop menyatakan koordinat y sudut kiri atas dari jendela
- document.body.screenLeft
- document. documentElement.screenLeft mendeklarasikan jumlah piksel yang telah di-scroll oleh dokumen saat ini ke kanan
- document.body.screenTop
- document.documentElement.screenTop menyatakan jumlah piksel yang telah di-scroll oleh dokumen saat ini ke kanan
- ! YAITU
- screenX menyatakan koordinat x dari sudut kiri atas jendela
- screenY menyatakan sudut kiri atas jendela Koordinat y
- pageXOffset menyatakan jumlah piksel yang dokumen saat ini telah gulir ke halaman
- kananYOffset menyatakan jumlah piksel yang telah di-scroll ke halaman kanan oleh dokumen
saat ini. - dokumen saat ini telah bergulir ke kanan
- FF
- innerHeight mengembalikan tinggi area tampilan dokumen jendela
- innerWidth mengembalikan lebar area tampilan dokumen jendela
- outsideWidth mengembalikan lebar luar jendela
- outerHeight Mengembalikan tinggi luar
jendela - jendela
dan atribut
pembuka lainnya dapat mewujudkan komunikasi antara bentuk silang di bawah nama domain yang sama. Formulir - harus
- berisi pembuka bentuk lain
yang tertutup mengembalikan nilai true ketika - jendela
- saat ini ditutup
- mengembalikan nama jendela saat ini