Handling Events

© 2011, Martin Rinehart

Standards-based browsers call your event handlers with a parameter that is a reference to the event object being handled. MSIE returns this reference in a global, window.event, not in a parameter. To handle this, use:


    function myEventHandler( e ) {

        if ( e === undefined ) {
            e = window.event;
        }
        if ( e.target !== undefined ) {
            var target = e.target;
        } else { var target = e.srcElement; }
        ...
    }

Though I generally disapprove of code that depends on a knowledge of JavaScript's "falsy" values, this idiom is very common:


    function myEventHandler( e ) {

        var e = e || window.event;
        var target = e.target ||
                e.srcElement;
        ...
    }

Feedback: MartinRinehart at gmail dot com

# # #