通用的頁面加載后再運行JS有兩種方式:1、在DOM加載完畢后,頁面全部內容(如圖片等)完全加載完畢前運行JS。 2、在頁面全部內容加載完成(包括引用文件,圖片等)之后再加載JS
1、在DOM加載后,全部內容加載前運行
這種方式在同一文件中可以運行多個且不會覆蓋。
由於在$(document).ready()方法只要DOM就緒就會被執行,因此可能此時元素的關聯文件未下載完。例如與圖片有關的HTML下載完畢,並且已經解析為DOM樹了,但很有可能圖片還未加載完畢,所以例如圖片的高度和寬度這樣的屬性此時不一定有效。要解決這個問題,可以使用Jquery中 load()方法在需要的文件加載完畢后對其進行操作。
$(document).ready(function(){}); $().ready(function(){}) //簡寫 當$()不帶參數時默認就是document $(function(){}); //簡寫
2、在全部內容加載后運行
這種方式中只能執行一個 onload代碼,當文件由多個onload或者load,只加載最后一個,前面的將會被覆蓋且前面的onload里面的代碼不會執行。
window.onload = function(){}; // —-js $(window).load(function(){}); //---jquery
3、DOM文檔加載步驟
1.解析HTML結構
2.加載外部的腳本和樣式文件
3.解析並執行腳本代碼
4.執行$(function(){})內對應代碼
5.加載圖片等二進制資源
6.頁面加載完畢,執行window.onload