Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimanakah Saya Boleh Tentukan Ketinggian Dokumen Web dalam JavaScript Merentasi Pelayar Berbeza?

Bagaimanakah Saya Boleh Tentukan Ketinggian Dokumen Web dalam JavaScript Merentasi Pelayar Berbeza?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-26 15:35:09492semak imbas

How Can I Reliably Determine the Height of a Web Document in JavaScript Across Different Browsers?

Menentukan Ketinggian Dokumen dengan JavaScript: Menyingkap Cabaran Merentas Pelayar

Dalam dokumen web tertentu, mendapatkan semula ketinggian menggunakan kaedah standard menimbulkan cabaran. Isu ini ditambah lagi dengan ketidakberkesanan melapik bahagian bawah dokumen. Ambil, sebagai contoh, tapak web fandango.com dan paperbackswap.com:

Di fandango.com:

  • jQuery's $(document).height() memberikan nilai yang betul.
  • dokumen.ketinggian dikembalikan 0.
  • document.body.scrollHeight mengembalikan 0.

Pada paperbackswap.com:

  • jQuery's $(document).height() melontarkan TypeError: $(document) ialah null.
  • document.height mengembalikan nilai yang salah.
  • document.body.scrollHeight mengembalikan nilai yang salah.

Pengiraan ketinggian dokumen merentas penyemak imbas adalah mimpi ngeri keserasian . Walaupun semua penyemak imbas menawarkan sifat clientHeight dan scrollHeight, ia berbeza dalam kaedah pengiraan mereka.

Amalan Terbaik untuk Mendapatkan Ketinggian Tepat
Cara yang paling boleh dipercayai untuk mendapatkan ketinggian dokumen yang betul ialah mengumpulkan semua nilai ketinggian daripada dokumen atau documentElement dan gunakan yang tertinggi. Pendekatan ini pada asasnya digunakan oleh jQuery:

var body = document.body,
    html = document.documentElement;

var height = Math.max( body.scrollHeight, body.offsetHeight, 
                       html.clientHeight, html.scrollHeight, html.offsetHeight );

Kaedah ini menghasilkan ketinggian yang betul untuk fandango.com dan paperbackswap.com.

Awas
Percubaan untuk mendapatkan semula ketinggian dokumen sebelum dokumen dimuatkan sepenuhnya akan sentiasa menghasilkan 0. Selain itu, pemuatan kandungan dinamik atau tetingkap mengubah saiz mungkin memerlukan ujian semula. Pantau acara ini dan uji dengan sewajarnya.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Tentukan Ketinggian Dokumen Web dalam JavaScript Merentasi Pelayar Berbeza?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn