protectDefault () - это стандарт w3c DOM Level 2, поэтому его следует применять во всех современных браузерах.
IE6, однако, не является современным браузером и не поддерживает DOM Level 2 или preventDefault()
. Альтернативный IE6 использует настройку event.returnValue
в false
, как и вы. Обратите внимание, что это не повлияет на всплывающее сообщение о событии (в IE6 это будет достигнуто установкой event.cancelBubble
в значение true). Таким образом, ваш код должен работать в IE6, а также во всех современных браузерах, чтобы предотвратить действие по умолчанию без остановки распространения.
Но я бы реструктурировал код, чтобы не устанавливать никаких свойств для события, если вам не нужно:
if (e.preventDefault) {
e.preventDefault();
} else {
e.returnValue = false;
}