На каком основании чек if (document.addEventListener)
возвращает false
? Есть ли способ изменить это?
почему проверка, если (document.addEventListener) возвращает false
Ответы (3)
if (document.addEventListener)
оценивается как false
, если в document
нет метода addEventListener
. Эта проверка обычно выполняется, чтобы увидеть, можно ли использовать этот метод для присоединения события к элементу DOM (работает в большинстве браузеров, кроме IE).
можно ли это изменить?
Я не совсем понимаю этот вопрос. Возможно, вы хотите что-то вроде document.attachEvent('onload', callback);
для IE. Вы не можете добавить метод addEventListener
в документ (ну, может быть, вы и можете, но это не имеет смысла).
Документация для addEventListener
Если этот фрагмент кода возвращает false
, это означает, что свойство метода addEventListener
не поддерживается браузером. Это случай для Internet Explorer, где вместо него используется attachEvent
:
if (document.addEventListener){
document.addEventListener(...);
} else if (document.attachEvent){
document.attachEvent(...);
}
Он возвращает ложное значение (хотя на самом деле не false
), если оно не определено.
Это стандартный тест функции (объекта AKA).
Вы можете изменить его, внедрив свою собственную версию. Чаще всего вы будете использовать это в функции-оболочке с } else {
, имеющей специфичную для IE обработку.