判斷控件是否已加載完成的代碼
更新時間:2010年02月24日 21:31:30 作者:
判斷一個控件是否已加載完成其實很簡單,就是利用瀏覽器的解析順序。通俗的說,代碼的位置越靠前,就越先加載。
例如:
<input id="btnPost" type="button" value="button" />
<img src="../jqueryui/themes/base/images/ui-icons_cd0a0a_256x240.png" alt="" id="imga" />
瀏覽器在解析時,首先加載 input標簽,然后加載img標簽。
此時如果想判斷img標簽是否加載完成,可以在img標簽的前后加上腳本,例如
代碼
<div id="loading"></div>
<input id="btnPost" type="button" value="button" />
<script type="text/javascript">
var msg = document.getElementById("imga");
if (msg == null) {
document.getElementById("loading").innerHTML = "正在生成圖片控件...";//此處使用setTimeout函數不管用
}
</script>
<img src="../jqueryui/themes/base/images/ui-icons_cd0a0a_256x240.png" alt="" id="imga"/>
<script> document.getElementById("loading").innerHTML = "";</script>
注意此時的img標簽前后的js代碼,上面的js代碼先獲取img對象,然后判斷該對象是否為空,如果是空的話說明沒有加載完成,那么提示用戶“正在生成圖片控件”,加載完成后將提示信息隱藏。
上面的方法適用于所有控件或標簽,但是對于本身就具有onload事件的控件或標簽(該事件在對應的控件或標簽加載完成后觸發(fā)),我們完全可以把img后面的代碼封裝成一個函數供onload調用,如下
代碼
<script type="text/javascript">
function loadedImg() { document.getElementById("loading").innerHTML = ""; }
</script>
</head>
<body >
<input id="autocomplete"/>
<div id="loading"></div>
<input id="btnPost" type="button" value="button" />
<script type="text/javascript">
var msg = document.getElementById("imga");
if (msg == null) {
document.getElementById("loading").innerHTML = "正在圖片控件...";//此處使用setTimeout函數不管用
}
</script>
<img src="../jqueryui/themes/base/images/ui-icons_cd0a0a_256x240.png" alt="" id="imga" onload="loadedImg();"/>
</body>
從上面的代碼可以看出,img標簽后面的代碼已經封裝成loadedimg方法被img的onload調用。
那哪些控件或標簽具有onload事件呢?我在網上查了,如下(不知道全不全):
<body>, <frame>, <frameset>, <iframe>, <img>, <link>, <script>
行了就是這么多了,有問題留言
復制代碼 代碼如下:
<input id="btnPost" type="button" value="button" />
<img src="../jqueryui/themes/base/images/ui-icons_cd0a0a_256x240.png" alt="" id="imga" />
瀏覽器在解析時,首先加載 input標簽,然后加載img標簽。
此時如果想判斷img標簽是否加載完成,可以在img標簽的前后加上腳本,例如
代碼
復制代碼 代碼如下:
<div id="loading"></div>
<input id="btnPost" type="button" value="button" />
<script type="text/javascript">
var msg = document.getElementById("imga");
if (msg == null) {
document.getElementById("loading").innerHTML = "正在生成圖片控件...";//此處使用setTimeout函數不管用
}
</script>
<img src="../jqueryui/themes/base/images/ui-icons_cd0a0a_256x240.png" alt="" id="imga"/>
<script> document.getElementById("loading").innerHTML = "";</script>
注意此時的img標簽前后的js代碼,上面的js代碼先獲取img對象,然后判斷該對象是否為空,如果是空的話說明沒有加載完成,那么提示用戶“正在生成圖片控件”,加載完成后將提示信息隱藏。
上面的方法適用于所有控件或標簽,但是對于本身就具有onload事件的控件或標簽(該事件在對應的控件或標簽加載完成后觸發(fā)),我們完全可以把img后面的代碼封裝成一個函數供onload調用,如下
代碼
復制代碼 代碼如下:
<script type="text/javascript">
function loadedImg() { document.getElementById("loading").innerHTML = ""; }
</script>
</head>
<body >
<input id="autocomplete"/>
<div id="loading"></div>
<input id="btnPost" type="button" value="button" />
<script type="text/javascript">
var msg = document.getElementById("imga");
if (msg == null) {
document.getElementById("loading").innerHTML = "正在圖片控件...";//此處使用setTimeout函數不管用
}
</script>
<img src="../jqueryui/themes/base/images/ui-icons_cd0a0a_256x240.png" alt="" id="imga" onload="loadedImg();"/>
</body>
從上面的代碼可以看出,img標簽后面的代碼已經封裝成loadedimg方法被img的onload調用。
那哪些控件或標簽具有onload事件呢?我在網上查了,如下(不知道全不全):
<body>, <frame>, <frameset>, <iframe>, <img>, <link>, <script>
行了就是這么多了,有問題留言
相關文章
javascript中使用replaceAll()函數實現字符替換的方法
第一次發(fā)現JavaScript中replace()?方法如果直接用str.replace("-","!")?只會替換第一個匹配的字符.2010-12-12微信小程序webview與h5通過postMessage實現實時通訊的實現
這篇文章主要介紹了微信小程序webview與h5通過postMessage實現實時通訊的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-08-08