Captura de eventos de JavaScript en IE Mobile
-
16-09-2019 - |
Pregunta
necesito para detectar el identificador del elemento que genera un evento onchange.
Este código de trabajo en la mayoría de los navegadores modernos
<input type="text" onchange="return onchange_handler(event);"
function onchange_handler(event) {
var id = event.target ? event.target.id : event.srcElement.id;
...
return false;
}
Pero no funciona en IE Mobile .
He probado el código siguiente y, al menos, se dispara el evento y la función de controlador se llama, pero window.event
no está disponible cuando se llama controlador de eventos:
<input type="text" onchange="return onchange_handler();"
function onchange_handler() {
var event = window.event; // <= evaluated as UNDEFINED
var id = event.target ? event.target.id : event.srcElement.id;
...
return false;
}
¿Hay alguna manera de obtener una referencia al evento disparado? O un enfoque alternativo para conocer el id del elemento que causó el evento.
Solución
Una solución sería pasar el elemento a la devolución de llamada: (no probado)
<input type="text" id="mytextbox" onchange="return onchange_handler(this);"
function onchange_handler(element) {
var id = element.id;
...
return false;
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow