JavaScript-Ereignisprototyp in IE8

Ich versuche, dem Event-Prototyp eine Methode hinzuzufügen. Um anzurufen / einzustellenpreventDefault() oder in IE-SprachereturnValue = false und -wenn gewünscht-stopPropagation() / cancelBubble = true;. Ich dachte, der folgende Code hätte ausgereicht.

Event = Event || window.Event;
//^^ makes the fiddle work on IE8 ^^
if(!(Event.prototype.stopEvent))
{
    Event.prototype.stopEvent = function(propagate)
    {
        "use strict";
        propagate = (propagate ? true : false);
        if (this.preventDefault)
        {
            this.preventDefault();
            if (propagate === false)
            {
                this.stopPropagation();
            }
        }
        else
        {
            this.returnValue = false;
            this.cancelBubble = !propagate;
        }
        return this;
    };
}

Welches scheint zu funktionieren,wie Sie hier sehen können. Diese Geige zeigtOK in IE8, Firefox und Chrom. Wenn ich dies zu meinem Skript hinzufüge, bricht der IE8 in der ersten Zeile ab und sagt:'Ereignis ist undefiniert'. Auslassen"use strict"; macht überhaupt keinen Unterschied.

Widerstrebend habe ich es auch versucht:

if (typeof Event === 'undefined')
{
    var Event = window.Event || window.event;//FFS IE :-(
}

Aber ohne Erfolg:Error: 'Event.prototype' is null or not an objectAlso habe ich 1 Zeile weiter. Die Sache ist, die gesamte Prototypmethode ist eine Kopie, die aus meinem Skript eingefügt wird, aber was übersehe ich hier? Irgendwelche Ideen / Vorschläge?
Vielen Dank

PS: Ich mag reines JavaScript, also schlagen Sie bitte jQuery, prototypejs, dojo, ... nicht als Lösung vor. Ich habe gerade jQuery losgeworden. (Ich mag jQuery, aber in diesem Fall ist es nicht nötig.)

Aktualisieren

Die Dinge haben sich zum Schlechten gewendet, fürchte ich. ich fanddiese MSDN-Referenz. Die gesamte Seite befasst sich mit DOM-Element-Prototypen. Es ist ziemlich fair zu sagen, dass sie in IE8 (in gewissem Umfang) verfügbar und verwendbar sind. Auf dieser Seite ist mir dieser Code aufgefallen:

Event.prototype.stopPropagation = function ()
{
  this.cancelBubble = true;
};
Event.prototype.preventDefault = function ()
{
  this.returnValue = false;
};

Es befindet sich ~ 3 / 4ths der Seite nach unten im Abschnitt mit dem Titel"Powerful Scenarios". Meiner Meinung nach ist dies genau das, was ich tun möchte, aber außerdem: Wenn ich diesen Code über jsfiddle ausprobiere, funktioniert er nicht einmal, wohingegen mein jsfiddle (mit meinem Code) auf IE8 funktioniert hat. Dies sind nur die letzten Zeilen eines Snippets, aber soweit ich das beurteilen kann, sollten diese wenigen Codezeilen einwandfrei funktionieren. Ich habe sie wie folgt geändert:

Event.prototype.stopPropagation = function ()
{
    if (this.stopPropagation)
    {
        return this.stopPropagation();
    }
    this.cancelBubble = true;
};
Event.prototype.preventDefault = function ()
{
    if (this.preventDefault)
    {
        return this.preventDefault();
    }
    this.returnValue = false;
};

Antworten auf die Frage(2)

Ihre Antwort auf die Frage