首頁  >  文章  >  web前端  >  JavaScript之IE的fireEvent方法詳細解析_javascript技巧

JavaScript之IE的fireEvent方法詳細解析_javascript技巧

WBOY
WBOY原創
2016-05-16 17:14:011093瀏覽

在IE中提供了一個fireEvent方法,顧名思義就是觸發某個事件發生的意思。剛開始我以為是會跟平常使用onclick()一樣,沒想到最近在寫javascript入門ppt的時候發現了,原來自己太自以為是了!看來還有很多javascript的細節沒有掌握好啊!

現在根據自己的總結詳細的記錄下fireEvent方法的使用。 fireEvent是IE提供的方法,msdn文件位址:http://msdn.microsoft.com/en-us/library/ms536423(v=vs.85).aspx

onclick()
我們先看第一段實例碼:


  • i am one;

  • i am two;

  • i am three;


這段程式碼中我們沒有個id1的li加入onclick事件,點選button,會報錯,提示「物件不支援此屬性或方法」。由此可見,DOM.onclick()需要在加入onclick事件之後才能使用。

假如我們把以上的程式碼修改為:


  • i am one;

  • i am two;

  • i am three;


此時,點選button會觸發onclick事件,但是ul的onclick沒有觸發,這就顯示了DOM.onclick()不存在冒泡。

fireEvent()
我們來看看fireEvent跟onclick()觸發事件是否相同。看下面的程式碼:


  • i am one;

  • i am two;

  • i am three;


點擊button後,觸發ul的onclick事件,說明fireEvent會引起冒泡,而且沒有發生像onclick()提示“對像不支援此屬性或方法”,說明即使不添加id1的onclick事件也可以冒泡。
由此可以看出,IE中的fireEvent方法類似模擬使用者的滑鼠點擊行為,而不是單純的onclick。

總結fireEvent和onclick區別
透過上面的例子可以看出,DOM的fireEvent和onclick(這只是個代表)有以下區別:

onclick需要DOM真正添加了onclick事件,否則會報「物件不支援此屬性或方法」錯誤
onclick不會引起IE的冒泡過程,而fireEvent會引起冒泡,fireEvent更貼近用戶真實的行為觸發
由第二條得出,fireEvent在即使DOM沒有click事件也可以fireEvent,而不會報錯(更貼近用戶真實行為)
最後可以拿下面的程式碼測試:


  • i am one;

  • i am two;

  • i am three;



陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn