JavaScript獲取網(wǎng)頁的寬高及如何兼容詳解
很多場景下會需要獲取當前網(wǎng)頁的寬高來達到一些效果,但是獲取網(wǎng)頁的寬高這里面還是有一點(hen duo)坑的,這里我進行了總結(jié)和詳解,若有補充歡迎評論補充~
方式一:window.innerWidth / window.innerHeight
這種方式只支持IE9以及以上版本的瀏覽器
網(wǎng)頁高度,打開F12控制臺當然高度會不同
方式二:document.documentElement.clientWidth
console.log(document.documentElement); console.log(document.documentElement.clientWidth); console.log(document.documentElement.clientHeight);
document.documentElement獲取到的是HTML,從而獲取到了整個網(wǎng)頁
可用于IE9以下,當然也支持IE9以及以上 可以用來兼容
方式三:混雜模式/怪異模式 下的寬高的獲取
怪異模式:沒有寫文檔聲明(就是第一行的那個< !DOCTYPE html >)就是怪異模式,這種模式下會有一些不同的渲染方式,感興趣的小伙伴可以去了解(這里講解的獲取寬高就是怪異模式特點之一)。
console.log(document.compatMode); console.log(document.body.clientWidth); console.log(document.body.clientHeight);
這樣獲取的方式只有在混雜模式下可以正確獲取
在標準模式下不會報錯,但是獲取到的寬高不是正確的
document.compatMode可以知道當前文檔是混雜還是標準(BackCompat混雜,CSS1Compat標準)
你以為結(jié)束了?
問題才出現(xiàn)!~
所以,問題來了:怎么兼容?(別認為兼容不重要,不兼容就有很大的報錯風(fēng)險啊喂!畢竟你不知道用戶會不會用IE6打開網(wǎng)頁@_@)
封裝:兼容了高低版本瀏覽器,標準/混雜模式
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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- javascript獲取網(wǎng)頁寬高方法匯總
- javascript實現(xiàn)網(wǎng)頁中涉及的簡易運動(改變寬高、透明度、位置)
- JS獲取屏幕,瀏覽器窗口大小,網(wǎng)頁高度寬度(實現(xiàn)代碼)
- javascript獲取和判斷瀏覽器窗口、屏幕、網(wǎng)頁的高度、寬度等
- 獲取JS中網(wǎng)頁各種高寬與位置的方法總結(jié)
- JavaScript獲取網(wǎng)頁、瀏覽器、屏幕高度和寬度匯總
- javascript獲取網(wǎng)頁各種高寬及位置的方法總結(jié)
- JS獲取網(wǎng)頁屬性包括寬、高等等
- jQuery javascript獲得網(wǎng)頁的高度與寬度的實現(xiàn)代碼
相關(guān)文章
腳本分析、壓縮、混淆工具 JSA新版本發(fā)布,壓縮效率提高大約10%
腳本分析、壓縮、混淆工具 JSA新版本發(fā)布,壓縮效率提高大約10%...2007-05-05js中script的上下放置區(qū)別,Dom的增刪改創(chuàng)建操作實例分析
這篇文章主要介紹了js中script的上下放置區(qū)別,Dom的增刪改創(chuàng)建操作,結(jié)合實例形式分析了JavaScript基本dom事件、script在head和body中放置的區(qū)別、以及Dom的增刪改創(chuàng)建等相關(guān)操作技巧,需要的朋友可以參考下2019-12-12分享XmlHttpRequest調(diào)用Webservice的一點心得
因為項目需要,以后前端、手機客戶端調(diào)用ASP.NET的Webservice來獲取信息.所以這段時間開始看Webservice,試著通過XmlHttpRequest調(diào)用Webservice,過程中碰到不少問題,也有不少的收獲2012-07-07