Protokół JavaScript Event w IE8

Próbuję dodać metodę do prototypu zdarzenia. Aby zadzwonić / ustawićpreventDefault() lub, w IE-speakreturnValue = false i -jeśli pożądane-stopPropagation() / cancelBubble = true;. Myślałem, że poniższy kod byłby wystarczający.

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;
    };
}

Który wydaje się działać,jak widać tutaj. To skrzypce pokazujeOK w IE8, firefox i chrome. Chociaż, kiedy dodam to do mojego skryptu, IE8 łamie pierwszą linię, mówiąc„Zdarzenie jest niezdefiniowane”. Pomijając"use strict"; nie robi żadnej różnicy.

Niechętnie spróbowałem tego też:

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

Ale bez skutku:Error: 'Event.prototype' is null or not an object, więc mam jeszcze jedną linię. Chodzi o to, że cała metoda prototypowa jest kopią z mojego skryptu, ale czym tu jestem? Jakieś pomysły / sugestie?
Dzięki

PS: Lubię Pure JavaScript, więc proszę, nie sugeruj jQuery, prototypejs, dojo, ... jako rozwiązania. Właśnie pozbyłem się jQuery. (Lubię jQuery, ale w tym przypadku nie ma takiej potrzeby)

Aktualizacja

Obawiam się, że sprawy pogorszyły się. znalazłemto odniesienie do MSDN. Cała strona dotyczy prototypów DOM Element. Można śmiało powiedzieć, że są dostępne i nadają się do użycia w IE8 (do pewnego stopnia). Na tej stronie ten kod wpadł mi w oko:

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

Można go znaleźć ~ 3/4 strony w dół, w sekcji zatytułowanej"Powerful Scenarios". Jest to, moim zdaniem, dokładnie to samo, co chcę zrobić, ale co więcej: jeśli spróbuję tego kodu za pośrednictwem jsfiddle, to nawet nie działa, podczas gdy mój jsfiddle (z moim kodem) działał na IE8. To tylko kilka ostatnich linii fragmentu kodu, ale o ile mogę to sprawdzić, te kilka wierszy kodu powinno działać dobrze. Zmieniłem je w następujący sposób:

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;
};

questionAnswers(2)

yourAnswerToTheQuestion