Skip to content

Instantly share code, notes, and snippets.

@DavidWells
Last active July 6, 2021 15:46
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save DavidWells/8098692415b2191b2a88 to your computer and use it in GitHub Desktop.
Save DavidWells/8098692415b2191b2a88 to your computer and use it in GitHub Desktop.
// Cross Browser Event Utility
// Nicholas Zakas, Professional JavaScript for Web Developers p.441
(function(window, document) {
'use strict';
var
EventUtil = {
addHandler: function( element, type, handler ) {
if ( element.addEventListener ) {
element.addEventListener ( type, handler, false );
} else if ( element.attachEvent ) {
element.attachEvent ( "on" + type, handler );
} else {
element["on" + type] = handler;
}
},
getEvent: function ( event ) {
return event ? event : window.event;
},
getTarget: function ( event ) {
return event.target || event.srcElement;
},
preventDefault: function ( event ) {
if ( event.preventDefault ) {
event.preventDefault();
} else {
event.returnValue = false;
}
},
removeHandler: function( element, type, handler ) {
if ( element.removeEventListener ) {
element.removeEventListener ( type, handler, false );
} else if ( element.detachEvent ) {
element.detachEvent ( "on" + type, handler );
} else {
element["on" + type] = null;
}
},
stopPropagation: function ( event ) {
if ( event.stopPropagation ) {
event.stopPropagation();
} else {
event.cancelBubble = true;
}
}
};
var newAnchor = document.createElement( "a" );
newAnchor.href = "#";
newAnchor.appendChild ( document.createTextNode("Test Link") );
document.body.appendChild(newAnchor);
newAnchor.onclick = function ( event ) {
var target;
event = EventUtil.getEvent ( event );
EventUtil.preventDefault ( event );
EventUtil.stopPropagation ( event );
target = EventUtil.getTarget ( event );
if ( "innerText" in target ) {
target.innerText = target.innerHTML + 'X';
} else {
target.textContent = target.textContent + 'X';
}
};
})(window, window.document);
@DavidWells
Copy link
Author

var EventUtil = {
addHandler: function(element, type, handler) {
if (element.addEventListener) {
element.addEventListener(type, handler, false);
} else if (element.attachEvent) {
element.attachEvent("on" + type, handler);
} else {
element["on" + type] = handler;
}
},
removeHandler: function(element, type, handler) {
if (element.removeEventListener) {
element.removeEventListener(type, handler, false);
} else if (element.detachEvent) {
element.detachEvent("on" + type, handler);
} else {
element["on" + type] = null;
}
}
};

@ceau74
Copy link

ceau74 commented Jul 6, 2021

Hi.
How to verify or detect backspace key on cell phone android?
Thank you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment