在IE Mobile中捕获javascript事件
我需要检测生成onchange事件的元素的id 此代码适用于大多数现代浏览器:在IE Mobile中捕获javascript事件,javascript,javascript-events,ie-mobile,Javascript,Javascript Events,Ie Mobile,我需要检测生成onchange事件的元素的id 此代码适用于大多数现代浏览器: <input type="text" onchange="return onchange_handler(event);" function onchange_handler(event) { var id = event.target ? event.target.id : event.srcElement.id; ... return false; } 有没有办法获取对已触发事件
<input type="text" onchange="return onchange_handler(event);"
function onchange_handler(event) {
var id = event.target ? event.target.id : event.srcElement.id;
...
return false;
}
有没有办法获取对已触发事件的引用?或者另一种了解导致事件的元素id的方法。解决方法是将元素传递给回调:(未测试)
在每个浏览器中,文本框上的更改
事件仅在用户焦点远离文本框时触发(即,在模糊
)。您验证过IE Mobile具有相同的特征吗?是的,即使在IE Mobile中也会触发事件,但我找不到访问事件(window.event)变量的方法。有任何事件在IE Mobile上工作吗?从这里我可以看到:该浏览器上似乎严重缺乏基本的DOM事件支持。因此,-event作为第一个参数传递和窗口。event
在调用事件处理程序时不可用?是的,某些事件可以工作。事实上,调用了示例中的onchange_处理程序,但无法访问window.event。IE Mobile中没有第一个参数,因为如果我使用它,就不会调用handler函数。谢谢,它可以工作,但它迫使我保留两个版本的脚本。我接受你的回答,因为这可能是唯一的解决办法。
<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;
}
<input type="text" id="mytextbox" onchange="return onchange_handler(this);"
function onchange_handler(element) {
var id = element.id;
...
return false;
}