2010-02-19 18 views
7

this問題相似,我的HTML看起來像這樣:Javascript:在body的onload事件中指定的函數被調用了什麼參數?

<body id="body" onload="loader()"> 
</body> 

我始終認爲,作爲this doc說,這onload事件沒有給出參數。但是,我命名的說法,並做了一些深入檢查,發現我得到了一個對象看起來像這樣:

{originalTarget : DOM, 
preventCapture : function, 
target : DOM, 
cancelable : Bool, 
currentTarget : DOM, 
timeStamp : Int, 
bubbles : Bool, 
type : String, 
eventPhase : Int, 
preventDefault : function, 
initEvent : function, 
stopPropagation : function, 
CAPTURING_PHASE : Int, 
AT_TARGET : Int, 
BUBBLING_PHASE : Int, 
explicitOriginalTarget : DOM, 
preventBubble : function, 
isTrusted : Bool, 
MOUSEDOWN : Int, 
MOUSEUP : Int, 
MOUSEOVER : Int, 
//... (more constants) 
} 

任何人有任何想法的事情是什麼,或者什麼它的類名可能是什麼?

回答

9

這似乎是標準JavaScript DOM Event對象。它描述了你的函數正在處理的事件的性質。

更新所評論的討論:

不同的瀏覽器以不同的方式提供事件對象:

  • IE從來並將其作爲參數傳遞給函數,而是使用了window.event財產。
  • Firefox會將其作爲第一個參數傳遞給它。
  • Chrome似乎都這樣做。
+0

+1尼斯偵探工作:) – Sampson 2010-02-19 00:34:37

+0

我相信任何事件處理程序(即不是'body.onload')調用的任何函數都會將此對象作爲其第一個參數傳遞。 – 2010-02-19 00:53:29

+0

@Paul:我認爲瀏覽器實現和事件附加方式之間存在差異(使用傳統或高級事件註冊模型)。但是我可能完全錯了(現在也太累了,現在找不到它)。 – 2010-02-19 00:58:31

相關問題