Ответ 1
Хорошо, если вы настаиваете:
event.preventDefault
не работает, потому что он не существует в IE.
По какой причине он не существует, нужно работать в MS. Но в целом IE не всегда соответствует стандартам.
В документации вы можете установить event.returnValue
:
false
Действие по умолчанию для события на исходном объекте отменяется.
и далее:
Примечание
Значение этого свойства имеет приоритет над значениями, возвращаемыми функцией, например, с помощью оператора возврата JScript Microsoft.
Информация о стандартах
Нет общедоступного стандарта, который применяется к этому свойству.