Spidermonkey स्वंय परिचालित घटना से जुड़े कुछ भी नहीं है। घटनाएं पूरी तरह से एक डोम चीज हैं।
क्लिक ईवेंट को ब्राउज़र कोड (स्पाइडरमोन्की एम्बेड करने वाली चीज़) द्वारा निकाल दिया जाता है, स्पाइडरमोन्की द्वारा स्वयं नहीं। उस कोड के लिए http://hg.mozilla.org/mozilla-central/file/e60b8be7a97b/content/events/src/nsEventStateManager.cpp देखें जो क्लिक जैसी चीज़ों को प्रेषित करने के लिए ज़िम्मेदार है।
ब्राउज़र भी सेटर विधियों को परिभाषित करता है जो onclick
संपत्ति को असाइनमेंट लेते हैं और इसे एक ईवेंट श्रोता पंजीकरण में बदल देते हैं। http://hg.mozilla.org/mozilla-central/file/e60b8be7a97b/dom/base/nsDOMClassInfo.cpp#l7624 देखें जिसे nsEventReceiverSH::SetProperty
से बुलाया जाता है और जिन गुणों का नाम (id
इस कोड में) IsEventName
परीक्षण पास करता है।
जब ईवेंट श्रोताओं पंजीकृत होते हैं और एक ईवेंट निकाल दिया जाता है, तो ईवेंट प्रेषक श्रोताओं को कॉल प्रबंधित करता है; nsJSEventListener
लिंक आपको मिला है वह गोंद है जो एक सी ++ HandleEvent
को जेएस फ़ंक्शन पर कॉल में कॉल करता है।
तो आपके मामले में, आप श्रोताओं के लिए पंजीकरण/अनियंत्रण तंत्र के कुछ प्रकार चाहते हैं और फिर आपका कार्यान्वयन घटनाओं को आग देगा और उन्हें श्रोताओं को भेज देगा। आप यह आखिरी हिस्सा कैसे करते हैं वह खुले अंत में है; डीओएम घटनाक्रम विनिर्देश को लागू करने की आवश्यकता के कारण गेको कार्यान्वयन में कई बाधाएं हैं, लेकिन आपको कुछ आसान करने में सक्षम होना चाहिए।
स्रोत
2011-04-22 18:49:16
स्पाइडरमोन्की ओपन सोर्स है, बेशक, आप हमेशा ... हमेशा ब्राउज़ कर सकते हैं ... [ब्राउज़ करें] (http://mxr.mozilla.org/mozilla/source/js/src/) ... –
@TJ, स्पाइडरमोनकी सिर्फ एक जेएस इंजन, डीओएम की घटना संचालित प्रकृति इसके शीर्ष पर लागू की गई है। –
जिज्ञासा से, आप इस ज्ञान का उपयोग करने में सक्षम होने की उम्मीद कैसे करते हैं? दूसरे शब्दों में, क्या ऐसा कुछ है जो आप ऐसा करना चाहते हैं कि इस रहस्य का उत्तर समाधान के लिए आपके दृष्टिकोण का मार्गदर्शन करेगा? – Pointy