有关onpropertychange事件
<div style="border:1px solid #fc0;height:24px;width:300px;" id="target"></div><br /> <input name="filltext" oninput="document.getElementById('target').innerHTML=this.value" id="filltext" type="text" />
onpropertychange事件,顾名思义,就是property(属性)change(改变)的时候,触发事件。这是IE专有的!如果想兼容其它浏览器,有个类似的事件,oninput!
可能大家会想到另外一个事件:onchange。
但是,onchange有两个弊端,一、就是它在触发对象失去焦点时,才触发onchange事件。二、如果得用javascript改变触发对象的属性时,并不能触发onchange事件,oninput也有这个问题。
onpropertychange会在设置disable=true的时候失效。而且,onpropertychange是在触发对象改变任何属性时都会触发。而oninput只是在改变input的value值时才触发。
oninput 事件:不但JS 改变 value 值时不能触发,有从浏览器的自动下拉提示中选值时,也不会触发。
onpropertychange触发函数只有一个默认参数,是所以可以触发属性的集合
<script type="text/javascript"> document.getElementById('filltext').attachEvent('onpropertychange',function(){ console.log(arguments.length); for(var i=0;i<arguments.length;i++) { console.log(arguments[i]); } }); </script>
看执行结果: