почему может проверить, если (document.addEventListener) возвращает ложь - PullRequest
10 голосов
/ 11 октября 2010

На каком основании чек if (document.addEventListener) возвращает false?Есть ли способ, которым мы можем изменить это?

Ответы [ 3 ]

8 голосов
/ 11 октября 2010

if (document.addEventListener) оценивается как false, если в document нет метода addEventListener.Эта проверка обычно выполняется, чтобы увидеть, можете ли вы использовать этот метод для присоединения события к элементу DOM (работает в большинстве браузеров, кроме IE).

Есть ли способ, которым мы можем изменить это?1009 * Этот вопрос мне не совсем понятен.Возможно, вы хотите что-то вроде document.attachEvent('onload', callback); для IE.Вы действительно не можете добавить addEventListener метод к документу (ну, может быть, вы можете, но это не имеет смысла).

Документы для addEventListener

3 голосов
/ 11 октября 2010

Если этот фрагмент кода возвращает false, это означает, что свойство метода addEventListener не поддерживается браузером.Это случай для Internet Explorer , где вместо него используется attachEvent:

if (document.addEventListener){  
  document.addEventListener(...);
} else if (document.attachEvent){  
  document.attachEvent(...);  
}
1 голос
/ 11 октября 2010

Возвращает ложное значение (хотя на самом деле не false), если оно не определено.

Это стандартное обнаружение (объект AKA) test.

Вы можете изменить его, внедрив собственную версию.Чаще всего вы будете использовать это в функции-обертке с } else {, имеющей специфическую для IE обработку.

...