javascript
JavaScript笔记 var e=e||window.event
你是如何理解var e=e||window.event的?相信很多人都能給我個回答說是:為了實現多種瀏覽器兼容。
不錯,確實是為了實現瀏覽器兼容,但是它又是如何實現瀏覽器兼容的呢?
其實,如果把他寫全的話,就好理解多了吧。
function(event){var e=event?event||window.event;}這樣來看的話,相信粗懂java的人都會知道了,如果存在event,那么var e=event;而如果不存在event,那么var e=window.event.這樣的話我們就可以從字面上理解了個公式的意思,也能大體猜到的確能夠實現兼容的。
但是我們再來細挖一下,它在究竟在什么瀏覽器下等于什么呢,又是為什么呢?我們先附上一個神圖:
首先:我們進行ie和其他瀏覽器的判斷
ie的document對象有一個all屬性,它的里面存放了頁面的所有標簽,而其它瀏覽器是沒有的,所以在ie中,事件對象的傳播會綁定在全局的windows上,所以ie瀏覽器肯定是都支持window.event的
其次:特殊的firefox;
firefox只支持事件對象作為參數傳入,而這又恰恰是ie6/ie7/ie8所無法實現的,所以可以成功的區分這兩類,寫個實例進行測試的話,如下:
var mybtn =document.getElementById("mybtn");mybtn.onclick=function(event){//給mybtn綁定一個事件//其他瀏覽器會在發生點擊事件的時候,把事件對象當作參數傳遞過來alert("其他瀏覽器:"+event);//在ie瀏覽器中,這個event變量是空的,它會在全局的window上alert("ie瀏覽器:"+window.event);}最后,就是ie9/chrome/opera/safari,則兩種方式都支持,僅憑這點很難判定瀏覽器類型
但是,只要寫上var e=event?event||window.event,我們的確是可以保證各瀏覽器的兼容的,
總結
以上是生活随笔為你收集整理的JavaScript笔记 var e=e||window.event的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 大数据开发之Hive篇12-Hive正则
- 下一篇: HTML5七夕情人节表白网页制作【JS烟