Ваша строка
var o = window.event.srcElement || e.target;
не работает во всех браузерах, кроме IE, поскольку для них windows.event
не определена
. Правильная формулировка будет:
var o = e ? e.target : window.event.srcElement;
Поскольку стандартно совместимые браузеры передадут событие, поскольку параметр e
и цель в e.target
в IE, e
будут неопределенными, и вы должны использовать window.event.srcElement
. Обратите внимание, что последние версии IE поддерживают стандартную совместимую модель.
В более общей заметке, когда вы пытаетесь получить доступ к значению как a.b.c.d
, тогда a.b.c
должен быть определенным объектом, иначе вы получите ошибку a.b.c undefined
.