JavaScript獲取網(wǎng)頁的寬高及如何兼容詳解
很多場景下會(huì)需要獲取當(dāng)前網(wǎng)頁的寬高來達(dá)到一些效果,但是獲取網(wǎng)頁的寬高這里面還是有一點(diǎn)(hen duo)坑的,這里我進(jìn)行了總結(jié)和詳解,若有補(bǔ)充歡迎評(píng)論補(bǔ)充~
方式一:window.innerWidth / window.innerHeight
這種方式只支持IE9以及以上版本的瀏覽器
網(wǎng)頁高度,打開F12控制臺(tái)當(dāng)然高度會(huì)不同
方式二:document.documentElement.clientWidth
console.log(document.documentElement); console.log(document.documentElement.clientWidth); console.log(document.documentElement.clientHeight);
document.documentElement獲取到的是HTML,從而獲取到了整個(gè)網(wǎng)頁
可用于IE9以下,當(dāng)然也支持IE9以及以上 可以用來兼容
方式三:混雜模式/怪異模式 下的寬高的獲取
怪異模式:沒有寫文檔聲明(就是第一行的那個(gè)< !DOCTYPE html >)就是怪異模式,這種模式下會(huì)有一些不同的渲染方式,感興趣的小伙伴可以去了解(這里講解的獲取寬高就是怪異模式特點(diǎn)之一)。
console.log(document.compatMode); console.log(document.body.clientWidth); console.log(document.body.clientHeight);
這樣獲取的方式只有在混雜模式下可以正確獲取
在標(biāo)準(zhǔn)模式下不會(huì)報(bào)錯(cuò),但是獲取到的寬高不是正確的
document.compatMode可以知道當(dāng)前文檔是混雜還是標(biāo)準(zhǔn)(BackCompat混雜,CSS1Compat標(biāo)準(zhǔn))
你以為結(jié)束了?
問題才出現(xiàn)!~
所以,問題來了:怎么兼容?(別認(rèn)為兼容不重要,不兼容就有很大的報(bào)錯(cuò)風(fēng)險(xiǎn)啊喂!畢竟你不知道用戶會(huì)不會(huì)用IE6打開網(wǎng)頁@_@)
封裝:兼容了高低版本瀏覽器,標(biāo)準(zhǔn)/混雜模式
function getWid_Hei(){ let width,height; if(window.innerWidth){ width = window.innerWidth; height = window.innerHeight; }else if(document.compatMode === "BackCompat"){ width = document.body.clientWidth; height = document.body.clientHeight; }else{ width = document.documentElement.clientWidth; height = document.documentElement.clientHeight; } return { width:width, height:height } } let {width,height} = getWid_Hei(); console.log(width,height);
總結(jié)
到此這篇關(guān)于JavaScript獲取網(wǎng)頁的寬高及如何兼容的文章就介紹到這了,更多相關(guān)JS獲取網(wǎng)頁寬高內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- javascript獲取網(wǎng)頁寬高方法匯總
- javascript實(shí)現(xiàn)網(wǎng)頁中涉及的簡易運(yùn)動(dòng)(改變寬高、透明度、位置)
- JS獲取屏幕,瀏覽器窗口大小,網(wǎng)頁高度寬度(實(shí)現(xiàn)代碼)
- javascript獲取和判斷瀏覽器窗口、屏幕、網(wǎng)頁的高度、寬度等
- 獲取JS中網(wǎng)頁各種高寬與位置的方法總結(jié)
- JavaScript獲取網(wǎng)頁、瀏覽器、屏幕高度和寬度匯總
- javascript獲取網(wǎng)頁各種高寬及位置的方法總結(jié)
- JS獲取網(wǎng)頁屬性包括寬、高等等
- jQuery javascript獲得網(wǎng)頁的高度與寬度的實(shí)現(xiàn)代碼
相關(guān)文章
腳本分析、壓縮、混淆工具 JSA新版本發(fā)布,壓縮效率提高大約10%
腳本分析、壓縮、混淆工具 JSA新版本發(fā)布,壓縮效率提高大約10%...2007-05-05js實(shí)現(xiàn)可得到不同顏色值的顏色選擇器實(shí)例
這篇文章主要介紹了js實(shí)現(xiàn)可得到不同顏色值的顏色選擇器,實(shí)例分析了javascript顏色操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-02-02基于JavaScript制作一個(gè)簡單的天氣應(yīng)用
隨著Web開發(fā)技術(shù)的不斷發(fā)展,JavaScript已經(jīng)成為前端開發(fā)中不可或缺的一部分,下面我們就來看看如何使用JavaScript實(shí)現(xiàn)一個(gè)簡單的天氣應(yīng)用吧2024-01-01js中script的上下放置區(qū)別,Dom的增刪改創(chuàng)建操作實(shí)例分析
這篇文章主要介紹了js中script的上下放置區(qū)別,Dom的增刪改創(chuàng)建操作,結(jié)合實(shí)例形式分析了JavaScript基本dom事件、script在head和body中放置的區(qū)別、以及Dom的增刪改創(chuàng)建等相關(guān)操作技巧,需要的朋友可以參考下2019-12-12分享XmlHttpRequest調(diào)用Webservice的一點(diǎn)心得
因?yàn)轫?xiàng)目需要,以后前端、手機(jī)客戶端調(diào)用ASP.NET的Webservice來獲取信息.所以這段時(shí)間開始看Webservice,試著通過XmlHttpRequest調(diào)用Webservice,過程中碰到不少問題,也有不少的收獲2012-07-07推薦5 個(gè)常用的JavaScript調(diào)試技巧
這篇文章主要介紹了推薦5 個(gè)常用的JavaScript調(diào)試技巧,需要的朋友可以參考下2015-01-01原生JS使用Canvas實(shí)現(xiàn)拖拽式繪圖功能
這篇文章主要介紹了原生js實(shí)現(xiàn)Canvas實(shí)現(xiàn)拖拽式繪圖,支持畫筆、線條、箭頭、三角形和圓形等等圖形繪制功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2019-06-06