27 июня 2014

TypeError: window.event is undefined

Как-то раз меня попросили заставить работать один раздел сайта, написанный на чистом javascript, в Google Chrome и Firefox.

Вот ошибка, с которой я столкнулся:
TypeError: window.event is undefined

Код, вызвавший ошибку:
function divisionExpand () {
    var division = window.event.srcElement;
    var iddivision = division.id;
    # ...
}
Данная функция должна разворачивать скрытый блок с содержимым при клике на элементе. В html-файле было написано следующее:
<img onclick="javascript:divisionExpand()" src="/img/p.gif">

Причина ошибки в не кроссбраузерном получении объекта event.
Для исправления нужно в html написать:
<img onclick="javascript:divisionExpand(event)" src="/img/p.gif">

В javascript-файле написать:
function divisionExpand(event){
    # Кроссбраузерное получение объекта event
    var event = event || window.event;

    # Кроссбраузерное получение объекта target
    var target = event.target || event.srcElement;
    var iddivision = target.id;
    # ...
}

Комментариев нет:

Отправить комментарий