[英]Position of window.onload in Javascript
我有這樣的JavaScript代碼
<script type="text/javascript">
window.onload=myFunction;
</script>
在<head></head>
標記和</body>
標記之前使用上面的代碼片段有什么區別,因為我想在頁面加載后調用我的函數。
基本上沒有實際差異,但我建議
將代碼放在底部,因為您需要使用腳本(blocking-rendering標簽),所以最好將其放在文檔的末尾。
為了避免這樣的破壞性分配:編寫window.onload=myFunction
可以銷毀對window.onload
事件的其他先前分配(如果有的話),所以最好是這樣
(function() { var previousOnLoadIfAny = window.onload; window.onload = function() { if (typeof previousOnLoadIfAny === 'function') { previousOnLoadIfAny(); } yourfunction(); } }());
當load
事件觸發時,綁定到window.onload
將始終運行您的函數。 這僅在頁面中的所有內容(包括圖像等)完成加載后才觸發。如果要在DOM完成加載后但在其他所有操作之前運行函數,則可以綁定到DOMContentLoaded
事件或使用jQuery之類的庫(例如$(function(){ myFunction() });
)。
將函數放在<body>
末尾的好處是,從理論上講,這意味着您的其余內容已經加載,並且不需要將函數綁定到load
事件。 有時這可行,但要視情況而定。
不,您放置的位置無關緊要-文檔中的任何位置,當文檔和所有外部資源(圖像,腳本等)已加載時,它將觸發。
因為onload
在所有外部資源之后觸發,所以人們通常想使用DOMContentLoaded
來代替,而后者在HTML DOM准備就緒時觸發。 這將使頁面更具響應性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.