IE9 поддерживает addEventListener()
.
Вот как ваша существующая функция будет работать с attachEvent
(и старым свойством on*
).
// logic to attach the event correctly in IE9
function AttachEvent(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;
}
}
Затем вы бы установили событие загрузки окна ...
AttachEvent(window, "load", function() {
// ...
});
Не забывайте, что event
является глобальным со старыми IE.Вы можете написать об этом, если хотите.Вы бы просто заставили каждую функцию вызывать этот callback()
, который будет вызывать предоставленный пользователем handler()
с правильными аргументами.
var callback = function(e) {
e = e || window.event;
handler.call(element, e);
};
Вы можете увлечься и попытаться нормализовать свойства на event
, например target
/ srcElement
, но тогда вам может потребоваться рассмотреть существующую библиотеку.