मैं व्यक्तिगत रूप से मैन्युअल रूप से बनाई गई घटनाओं को संभालने के लिए एक रैपर फ़ंक्शन का उपयोग करता हूं। निम्न कोड सभी 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... */])।