-
1 # 科技i關注
-
2 # 公子邪o
如何解決用js判斷頁面是否載入完成程式碼例項:示例如下,將下面資訊複製儲存成.html檔案即可瀏覽到效果...
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>解決js判斷頁面是否載入完成程式碼例項</title>
<script type="text/javascript">
var ttd = null;
document.onreadystatechange = subSomething;//當頁面載入狀態改變的時候執行這個方法.
function subSomething() {
//if(document.readyState == "complete"&&window.parent.frames["框架名"].document.readyState == "complete") //當頁面載入狀態為完全結束時進入
//myform.submit(); //這是你的操作
if(document.readyState=="complete"){
//alert("當前頁面已載入完成!");
box = document.getElementById("box"); //當頁面載入完成後獲得該元素物件
alert(box.value);
}
}
</script>
</head>
<body>
<div><input type="text" value="載入完成讀取該元素值"/></div>
</body>
</html>
-
3 # 胖省筆記
這個問題我之前剛看過。
他用的不是window.onload
$(document).ready是在頁面載入完畢時執行回撥
而window.onload是在頁面全部載入完成時,包括一些資源比如圖片。
所以window.onload比$(document).ready更延後一些。
window.onload自然不必說,是瀏覽器自身支援的。
但是$(document).ready我看了一下原始碼。
他根據的是document.documentElement物件去判斷的。
他每次呼叫document.documentElement.scrollLeft方法
如果此方法產生了異常,就說明scrollLeft無法執行,此時頁面還未載入完成,
所以他就用try塊包含這條語句,然後catch住,用setTimeout方法,重新執行一遍。
直到scrollLeft可以執行時,就說明頁面載入完成了,此時再去回撥。
很有意思。
回覆列表
jQuery判斷HTML頁面載入完畢用的不是
window.onload
。$(document).ready是在頁面載入完畢時執行回撥而window.onload是在頁面全部載入完成時,包括一些資源比如圖片。
所以window.onload比$(document).ready更延後一些。
window.onload自然不必說,是瀏覽器自身支援的。
但是$(document)
.ready
根據的是document.documentElement
物件去判斷的。每次呼叫document.documentElement.scrollLeft方法如果此方法產生了異常,就說明scrollLeft無法執行,此時頁面還未載入完成,所以就用try塊包含這條語句,然後catch住,用setTimeout方法,重新執行一遍。直到scrollLeft可以執行時,就說明頁面載入完成了,此時再去回撥。