2010-12-18 35 views
10

does internet explorer no es compatible con e.preventDefault en javascript. Si no, cuál es el motivo y cuáles son las alternativas. Por favor, no sugiera ninguna respuesta jQuery, mootools.does internet explorer admite e.preventDefault

if (!e) e = window.event;

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

+2

posible duplicado de la función [event.preventDefault() no funciona en IE. ¿Alguna ayuda?] (Http://stackoverflow.com/questions/1000597/event-preventdefault-function-not-working-in-ie-any-help) (gracioso, este fue el primer golpe al buscar en Google 'evento preventdefault en ie') –

+1

@Felix Estoy más inclinado hacia por qué no funciona y si está relacionado de alguna manera con el modelo de eventos de IE. Además, el enlace habla más sobre mootools y jQuery que no estoy interesada. –

+0

Pero la respuesta aceptada no es específica del framework. –

Respuesta

14

mal si insisten:

event.preventDefault no funciona, ya que no existe en el IE.

Por la razón por la cual no existe, uno debería trabajar para MS. Pero en general, IE no siempre se ajusta a los estándares.

El documentation dice que usted puede configurar event.returnValue:

false
Acción predeterminada del evento en el objeto de origen se cancela.

y más allá:

Observaciones

El valor de esta propiedad tiene prioridad sobre los valores devueltos por la función, como por ejemplo a través de una instrucción de retorno de Microsoft JScript.

Normas de Información

No existe una norma pública que se aplica a esta propiedad.

preventDefault seems to be supported in IE9.

+1

estoy usando IE 7 y event.returnValue = false; tampoco parece funcionar. Agregué mi código de arriba para ver si puedes señalar algo. –

+1

@sushil bharwani: Tienes que hacer 'if (e.preventDefault)' (sin paréntesis).No desea llamar a la función, quiere probar si está definida. –

+0

oh mi mal. eres realmente excelente! gracias –

-5

No es compatible con ella porque alguien en Microsoft decidió así.

Alternativa es la event.cancelBubble.

+1

¿La cancelación del burbujeo evita la acción predeterminada? –

+2

No creo que event.cancelBubble sea el reemplazo de event.preventDefault ... podría ser para e.stopPropogation. –

Cuestiones relacionadas