2010-02-19 15 views
7

this सवाल की तरह, मेरी एचटीएमएल इस तरह दिखता है:जावास्क्रिप्ट: शरीर के अधिभार ईवेंट में निर्दिष्ट फ़ंक्शन को किस तर्क के साथ बुलाया जाता है?

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

मैं हमेशा मान, के रूप में this doc कहते हैं, कि ऑनलोड कोई तर्क दिया जाता है। हालांकि, मैं तर्क के नाम पर, और कुछ गहरी निरीक्षण किया था, और पाया कि मैं एक वस्तु इस तरह लग रही है:

{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) 
} 

किसी को भी किसी भी विचार क्या है कि बात है, या क्या अपने classname हो सकता है?

उत्तर

9

यह मानक जावास्क्रिप्ट डीओएम Event ऑब्जेक्ट प्रतीत होता है। यह उस घटना की प्रकृति का वर्णन करता है जिस पर आपका कार्य संभाला जा रहा है।

अपडेट प्रतिक्रिया में चर्चा टिप्पणी करने के लिए:

विभिन्न ब्राउज़र अलग अलग तरीकों से घटना वस्तु की आपूर्ति:

  • आईई कभी नहीं कार्य करने के लिए एक तर्क के रूप में यह गुजरता है और बजाय window.event संपत्ति का उपयोग करता है।
  • फ़ायरफ़ॉक्स इसे पहले तर्क के रूप में पास करेगा।
  • क्रोम दोनों ऐसा करने लगता है।
+0

+1 अच्छा जासूसी काम :) – Sampson

+0

मैं किसी भी समारोह (अर्थात न सिर्फ 'body.onload') किसी भी ईवेंट हैंडलर से बुलाया मानना ​​है कि इसके पहले तर्क के रूप में इस वस्तु को पारित कर दिया जाता है। –

+0

@ पॉल: मैंने सोचा था कि ब्राउज़र कार्यान्वयन और घटनाओं के तरीके के बीच मतभेद थे (परंपरागत या उन्नत घटना पंजीकरण मॉडल का उपयोग करके)। लेकिन मैं पूरी तरह से गलत हो सकता था (और इस समय इसे देखने के लिए बहुत थक गया)। –

संबंधित मुद्दे