[JavaScript]從光事件載入到全事件註冊

來源:互聯網
上載者:User
從《JavaScript DOM 編程藝術》書中學到的是編寫addLoadEvent方法,用於window的load事件。這是傳統事件
註冊方法。 1function addLoadEvent(func) {
 2    var oldonload = window.onload;
 3    if(typeof window.onload != 'function') {
 4        window.onload = func;
 5    }
 6    else {
 7        window.onload = function() {
 8            oldonload();
 9            func();
10        };
11    }
12}

《PPK談JavaScript》書中是對上面的方法的改進,用進階事件註冊方法addEventSimply,可用於各種事件,而不只是window的load事件。1function addEventSimply(obj, evt, fn) {
2    if(obj.addEventListener) {
3        obj.addEventListener(evt, fn, false);
4    }
5    else if(obj.attachEvent) {
6        obj.attachEvent('on'+evt, fn)
7    }
8}

使用舉例:
在之前寫的blog《點擊彈出新視窗》中的popup方法想要onload的話,怎麼寫?
1.addLoadEvent方法:
addLoadEvent(popup);
2.addEventSimply方法:
addEventSimply(window, 'load', popup);

ps.在用此方法前都是這麼寫的:
window.addEventListener ? window.addEventListener('load', fn, false) : window.attachEvent('onload', fn);
離上面的寫法改進成addEventSimply方法不到兩星期。。。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.