:1:onchange事件:只在键盘或者鼠标操作改变对象属性,且失去焦点时触发,脚本触发无效;
2:oninput事件:onpropertychange为IE专属的。其他浏览器下如果想要实现这一实时监听的需求,就要用到HTML5中的标准事件oninput,不过IE9以下的浏览器是不支持oninput事件的。所以我们需要综合oninput和onpropertychange二者来实现文本区域实时监听的功能。举例如下:
处理ie浏览器和非ie在oninput事件的兼容性方法:
1:对支持oninput的浏览器用oninput,其他浏览器(IE6/7/8)使用onpropertychange,
var testinput = document.createElement('input');
if('oninput' in testinput){
object.addEventListener("input",fn,false);
}else{
object.onpropertychange = fn;
}
2:对所有ie使用onpropertychange,其他浏览器用oninput:
var ie = !!window.ActiveXObject;
if(ie){
object.onpropertychange = fn;
}else{
object.addEventListener("input",fn,false);
}