JS 獲取瀏覽器窗口大小

經常使用:

JS 獲取瀏覽器窗口大小javascript

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// 獲取窗口寬度
if  (window.innerWidth)
winWidth = window.innerWidth;
else  if  ((document.body) && (document.body.clientWidth))
winWidth = document.body.clientWidth;
// 獲取窗口高度
if  (window.innerHeight)
winHeight = window.innerHeight;
else  if  ((document.body) && (document.body.clientHeight))
winHeight = document.body.clientHeight;
// 經過深刻 Document 內部對 body 進行檢測,獲取窗口大小
if  (document.documentElement && document.documentElement.clientHeight && document.documentElement.clientWidth)
{
winHeight = document.documentElement.clientHeight;
winWidth = document.documentElement.clientWidth;
}

 

 

詳細:

關於獲取各類瀏覽器可見窗口大小: 
<script> 
function getInfo() 

var s = ""; 
s = " 網頁可見區域寬:" document.body.clientWidth; 
s = " 網頁可見區域高:" document.body.clientHeight; 
s = " 網頁可見區域寬:" document.body.offsetWidth " (包括邊線和滾動條的寬)"; 
s = " 網頁可見區域高:" document.body.offsetHeight " (包括邊線的寬)"; 
s = " 網頁正文全文寬:" document.body.scrollWidth; 
s = " 網頁正文全文高:" document.body.scrollHeight; 
s = " 網頁被捲去的高(ff):" document.body.scrollTop; 
s = " 網頁被捲去的高(ie):" document.documentElement.scrollTop; 
s = " 網頁被捲去的左:" document.body.scrollLeft; 
s = " 網頁正文部分上:" window.screenTop; 
s = " 網頁正文部分左:" window.screenLeft; 
s = " 屏幕分辨率的高:" window.screen.height; 
s = " 屏幕分辨率的寬:" window.screen.width; 
s = " 屏幕可用工做區高度:" window.screen.availHeight; 
s = " 屏幕可用工做區寬度:" window.screen.availWidth;html

s = " 你的屏幕設置是 " window.screen.colorDepth " 位彩色"; 
s = " 你的屏幕設置 " window.screen.deviceXDPI " 像素/英寸"; 
//alert (s); 

getInfo(); 
</script> 
在我本地測試當中: 
在IE、FireFox、Opera下均可以使用 
document.body.clientWidth 
document.body.clientHeight 
便可得到,很簡單,很方便。 
而在公司項目當中: 
Opera仍然使用 
document.body.clientWidth 
document.body.clientHeight 
但是IE和FireFox則使用 
document.documentElement.clientWidth 
document.documentElement.clientHeight 
原來是W3C的標準在做怪啊 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
若是在頁面中添加這行標記的話 在IE中: 
document.body.clientWidth ==> BODY對象寬度 
document.body.clientHeight ==> BODY對象高度 
document.documentElement.clientWidth ==> 可見區域寬度 
document.documentElement.clientHeight ==> 可見區域高度 
在FireFox中: 
document.body.clientWidth ==> BODY對象寬度 
document.body.clientHeight ==> BODY對象高度 
document.documentElement.clientWidth ==> 可見區域寬度 
document.documentElement.clientHeight ==> 可見區域高度 

在Opera中: 
document.body.clientWidth ==> 可見區域寬度 
document.body.clientHeight ==> 可見區域高度 
document.documentElement.clientWidth ==> 頁面對象寬度(即BODY對象寬度加上Margin寬) 
document.documentElement.clientHeight ==> 頁面對象高度(即BODY對象高度加上Margin高) 
而若是沒有定義W3C的標準,則 
IE爲: 
document.documentElement.clientWidth ==> 0 
document.documentElement.clientHeight ==> 0 
FireFox爲: 
document.documentElement.clientWidth ==> 頁面對象寬度(即BODY對象寬度加上Margin寬)document.documentElement.clientHeight ==> 頁面對象高度(即BODY對象高度加上Margin高) 
Opera爲: 
document.documentElement.clientWidth ==> 頁面對象寬度(即BODY對象寬度加上Margin寬)document.documentElement.clientHeight ==> 頁面對象高度(即BODY對象高度加上Margin高)java

最後封裝個函數:

在頁面裏有W3C的標準的狀況下瀏覽器

function windowAttr(){
    return {
        'width': document.documentElement.clientWidth || window.innerWidth || document.body.clientWidth,
        'height': document.documentElement.clientHeight || window.innerHeight || document.body.clientHeight
    };
}

調用:函數

windowAttr().height
相關文章
相關標籤/搜索