Да, стандартные и устаревшие обработчики событий IE:
// standard
clickElem.addEventListener("click", function(evt) {
}, false);
// legacy IE
clickElem.attachEvent("onclick", function(evt) {
});
Типично видеть некоторые вспомогательные функции для облегчения кросс-браузерных обработчиков событий.
function addEvent(elem, eventName, fn) {
if (typeof addEventListener !== "undefined") {
elem.addEventListener(eventName, fn, false);
} else {
elem.attachEvent("on" + eventName, fn);
}
}
// calling
addEvent(clickElem, "click", function(evt) {
alert("You clicked me.");
});
Если вы не собираетесь использовать Prototype, вам придется самостоятельно обрабатывать расхождения между двумя моделями событий. Если вы планируете использовать другую библиотеку / инфраструктуру, то вы захотите использовать API этой библиотеки / инфраструктуры.