使用原生js得到頁面相關的正確引數

2022-08-28 16:54:26 字數 1410 閱讀 8367

這是一篇總結性質的日誌。目的是使用原生js得到頁面的總寬度,高度,左上角座標,滑鼠落點的絕對和相對座標。

需要相容的瀏覽器有ie6,ie8,ff4,chrome 10,safari 5,opera 11。

解釋一下為什麼不測試chrome,safari這些瀏覽器更早的版本。一是因為他們歷代版本在這方面改動不大,基本向後相容。二是,這些瀏覽器在中國占有率和使用率都太低了。

下面是總結:

目的:得到頁面總寬度

document.body.scrollwidth:全部正確

document.documentelement.scrollwidth:全部正確

document.body.clientwidth:全部正確

目的:得到頁面總高度

document.body.scrollheight:除ie外都正確

document.documentelement.scrollheight:全部正確

document.body.clientheight:全部正確

看來同一批屬性在高度和寬度問題上表現並不一致。

目的:得到視窗寬度

self.innerwidth:除ie系列都正確

document.documentelement.clientwidth:全部正確

目的:得到視窗高度

self.innerheight

document.documentelement.clientheight

測試結果同上,第二個全部正確

目的:得到視窗左上角絕對座標top

document.body.scrolltop:webkit核心瀏覽器正確

document.documentelement.scrolltop:其他核心瀏覽器正確

這兩個屬性在所有瀏覽器裡都有定義,只是乙個正確另乙個恒為0。用math.max取值即可。

目的:得到視窗左上角絕對座標left

document.body.scrollleft

document.documentelement.scrollleft

結果同上。

目的:得到滑鼠點選座標相對視窗原點座標x,y

這個沒什麼爭議,用event.clientx。

目的:得到滑鼠點選座標相對文件原點座標x,y

event.offsetx:除ff,其他都正確

event.pagex:除ie系列,全部正確

---------------------總結分割線-------------------------

page=;

也許你發現網上其他類似的測試,得出的結論不太一樣。可能其他測試結論種對某些值的檢測用了更複雜的條件判斷。他們不一定對,也不一定錯,而我也只是在我所有的瀏覽器裡做了測試,只保證他們在我的瀏覽器裡值是統一的。

所以,結論僅供參考。

JS頁面相關事件

頁面相關事件 onabort ie4 n3 o onbeforeunload ie4 n o 當前頁面的內容將要被改變時觸發的事件 onerror ie4 n3 o 捕抓當前頁面因為某種原因而出現的錯誤,如指令碼錯誤與外部資料引用的錯誤 onload ie3 n2 o3 頁面內空完成傳送到瀏覽器時觸...

頁面相關的資料儲存Cache

最為常用的快取機制。相對後三項屬於瀏覽器核心內的模組 也是h5中定義的標準 http cache早已存在於http模組中了。它是網路層對http協議實現中一部分。它基於對響應頭中的cache conrol資訊進行解析,執行新鮮度檢查 條件更新等操作來管理快取。快取的容量限制及淘汰 更新演算法在各個瀏...

對父頁面相關操作的介紹

當layer以iframe層的方式彈出新的視窗 子頁面 如何在子頁面中訪問父頁面的元素和函式。1 訪問父頁面元素值 var parentid parent.id val 訪問父頁面元素值 2 訪問父頁面方法 var parentmethodvalue parent.getmethodvalue 訪問...