2014-02-05 142 views
3

在搜索找出窗口高度的方法時,我開始知道「document.body.clientHeight」是有用的。我在不同的情況下嘗試了一切都失敗了。 失敗意味着它在所有窗口高度中返回相同的值。document.body.clientHeight返回無效結果

最後我刪除了DOCTYPE聲明

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

,一切都OK。現在它返回確切的結果。

即使HTML5 DOCTYPE

<!DOCTYPE html> 

返回無效結果。

我在不同的瀏覽器(Chrome,Opera,Firefox和IE)中檢查過它。

這是什麼原因? 使用document.body時是否有其他限制? 在同一場景下還有其他的東西(變量,標籤,方法,用法等)嗎?

謝謝。

+0

可能重複[JavaScript的 - 獲取瀏覽器高度](http://stackoverflow.com/questions/3333329/javascript-獲取瀏覽器高度) – Amit

+0

對不起,一個'曲解'的問題。我的興趣在於知道爲什麼document.body.clientHeight返回無效的結果,如果它在標準之下?這是一個錯誤? – Vijeesh

回答

2

試試這個

document.getElementById("viewheight").innerHTML = window.innerHeight 


    <!DOCTYPE html>, puts the document into standards mode. 

adding + "px" to the end of the size setting line 
    document.getElementById("viewheight").innerHTML = document.body.clientHeight + "px"; 
+2

閱讀此: - http://www.craiglotter.co.za/2009/01/23/javascript-why-doctype-affects-document-body-clientheight/ – user2804021

+0

謝謝你user2804021。該鏈接解決了我的問題。 – Vijeesh

1

使用此功能來檢查窗口高度

document.documentElement.clientHeight