在IE和FF中,DOM事件綁定的方法是又區別的,所以也帶來了兼容性的問題,但畢竟這個問題也是比較
有共識的,所以不用擔心。而且這個問題也比較容易解決,瞧:
- theFunction = function() { alert("Clicked!"); };
- theElement = document.getElementById('wikipedia');
- // All modern browsers
- if (window.addEventListener) {
- theElement.addEventListener('click', theFunction, false);
- // IE
- } else if (window.attachEvent) {
- theElement.attachEvent('onclick', theFunction);
- // Failure
- } else {
- alert("Your browser is definitely too old.");
- }
當然,你需要把這個處理的方法封裝起來,不然每次綁定事件都要寫很多重複的代碼。
這裏值得注意的是,在FF中,addEventListener還提供多一個capture的參數,這個capture是什麼意思,
就要另起話題進行討論了。