2

Ich versuche, eine polyfill für CustomEvent zu machen, die auch IE8 unterstützen, das ist, was ich kam mit:CustomEvent IE8 Unterstützung, wie die Params übergeben?

if (typeof window.CustomEvent === "function") { 
    return false; 
} else { 
    function CustomEvent (eventName, params) { 
    params = params || { bubbles: false, cancelable: false, detail: undefined }; 
    if (document.createEvent) { // IE9, IE10 
     var evt = document.createEvent('CustomEvent'); 
     evt.initCustomEvent(
     eventName, 
     params.bubbles, 
     params.cancelable, 
     params.detail 
    ); 
     return evt; 
    } else if (document.createEventObject) { // IE8 
     var evt = document.createEventObject(); 
     evt.eventType = eventName; 
    } 
    }; 
    CustomEvent.prototype = window.CustomEvent.prototype; 
    window.CustomEvent = CustomEvent; 
} 

Für den Teil IE8, wie ich die params passieren kann?

Antwort

1

Sie können über params laufen und ordnen sie das Ereignisobjekt:

var evt = document.createEventObject(); 
evt.eventType = eventName; 

for (var prop in params) { 
    evt[prop] = params[prop]; 
}