поддерживает ли Internet Explorer e.preventDefault? - PullRequest
10 голосов
/ 18 декабря 2010

Разве Internet Explorer не поддерживает e.preventDefault в JavaScript? Если нет, то в чем причина и каковы альтернативы? Пожалуйста, не предлагайте никаких решений с библиотеками, такими как jQuery, mootools и т. Д.

if (!e) e = window.event;

if (e.preventDefault) { 
    e.preventDefault(); 
} else {
    e.returnValue = false;
}

Ответы [ 2 ]

14 голосов
/ 18 декабря 2010

Хорошо, если вы настаиваете:

event.preventDefault не работает, потому что он не существует в IE.

По причине того, что он не существует, нужно было бы работать на MS. Но в целом IE не всегда соответствует стандартам.

Документация говорит, что вы можете установить event.returnValue:

false
Действие по умолчанию для события на исходном объекте отменено.

и далее:

Примечания

Значение этого свойства имеет приоритет перед значениями, возвращаемыми функцией, например, с помощью оператора возврата Microsoft JScript.

Информация о стандартах

Не существует публичного стандарта, применимого к этому имуществу.

preventDefault, похоже, поддерживается в IE9.

0 голосов
/ 18 декабря 2010

Он не поддерживает это, потому что кто-то в Microsoft решил так.

Альтернативой является event.cancelBubble .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...