मैं व्यक्तिगत रूप से मैन्युअल रूप से बनाई गई घटनाओं को संभालने के लिए एक रैपर फ़ंक्शन का उपयोग करता हूं। निम्न कोड सभी Event
इंटरफेस पर एक स्थिर विधि जोड़ देगा (सभी ग्लोबल वैरिएबल Event
एक इवेंट इंटरफ़ेस में हैं) और आपको element.dispatchEvent(MouseEvent.create('click'));
IE9 + जैसे फ़ंक्शन को कॉल करने की अनुमति देगा ।
(function eventCreatorWrapper(eventClassNames){
eventClassNames.forEach(function(eventClassName){
window[eventClassName].createEvent = function(type,bubbles,cancelable){
var evt
try{
evt = new window[eventClassName](type,{
bubbles: bubbles,
cancelable: cancelable
});
} catch (e){
evt = document.createEvent(eventClassName);
evt.initEvent(type,bubbles,cancelable);
} finally {
return evt;
}
}
});
}(function(root){
return Object.getOwnPropertyNames(root).filter(function(propertyName){
return /Event$/.test(propertyName)
});
}(window)));
संपादित करें: सभी Event
इंटरफेस को खोजने के लिए फ़ंक्शन को केवल आपके द्वारा आवश्यक इवेंट इंटरफेस को बदलने के लिए एक सरणी द्वारा प्रतिस्थापित किया जा सकता है ( ['Event', 'MouseEvent', 'KeyboardEvent', 'UIEvent' /*, etc... */]
)।