jQuery 與 JavaScript 比較 (2) - 網頁載入事件

當你要在一份網頁文件載入完成後立刻執行某些功能,在JavaScript 裏面可以監聽DOMContentLoaded 事件,語法如下:

document.addEventListener('DOMContentLoaded', function () {
console.log('DOMContentLoaded !');
}, false);

當網頁文件載入完成之後,會在主控台輸出「DOMContentLoaded !」這一行訊息,如果透過 jQuery ,則需利用以下的寫法:

$(document).ready(function () {
console.log('jQuery ready !');
});

同樣的,其中的訊息文字「jQuery ready」會在網頁完成載入之後,立刻輸出主控台。

如果是 window 完成載入後觸發的load事件,則必須另外透過以下的語法:

window.addEventListener('load', function () {
console.log('load !');
}, false);

若使用 jQuery 語法,則透過 load() 引用即可:

$(window).load(function () {
console.log('jQuery load !');
});

另外IE 瀏覽器只有 IE9 之後才支援 DOMContentLoaded 事件,因此包含 IE8 的舊版 IE 瀏覽器對上述的這段程式碼是沒有反應的,若要透過 JavaScript 偵測此事件,必須註冊另外一個 onreadystatechange 事件:

document.attachEvent("onreadystatechange", function () {
    alert('onreadystatechange');
});

jQuery 透過 ready() 引用可以直接相容,不過 jQuery 2.0 之後便移除了 IE8 相關的語法支援,這點要特別注意。




沒有留言: