兼容Firefox和IE的onpropertychange事件oninput

2018-09-24 21:44

阅读:506

  在文本框输入数据的时候,当键盘按下并放开的时候可以使用onkeyup来检测事件,onpropertychange能够捕获每次改变,而onchange需要执行某个事件才可以捕获。可是有的时候我们输入数据是采用粘贴的方式而不是键盘输入,这就需要实时检测文本框状态的改变。
onpropertychange不被firefox所支持,如果想在firefox下正常使用,需要用oninput属性,且需要用addEventListener来注册事件。

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]
例子:
复制代码 代码如下:
<html>
<body>
<div>oninput测试</div>
<divid=testdiv><inputid=tx1name=tx1value=/></div>
</body>
</html>
<scriptlanguage=JavaScript>
<!--
functiongetOs(){//判断浏览器类型
varOsObject=;
returnMSIE;
}
if(isFirefox=navigator.userAgent.indexOf(Firefox)>0){
returnFirefox;
}
if(isSafari=navigator.userAgent.indexOf(Safari)>0){
returnSafari;
}
if(isCamino=navigator.userAgent.indexOf(Camino)>0){
returnCamino;
}
if(isMozilla=navigator.userAgent.indexOf(Gecko/)>0){
returnGecko;
}

}

if(navigator.userAgent.indexOf(MSIE)>0){
document.getElementById(tx1).attachEvent(onpropertychange,txChange);
}elseif(navigator.userAgent.indexOf(Firefox)>0){
document.getElementById(tx1).addEventListener(input,txChange2,false);
}
functiontxChange(){
alert(testie);
}
functiontxChange2(){
alert(testfirefox);
}
</script>

以上就是兼容Firefox的onpropertychange事件方法。


评论


亲,登录后才可以留言!