主流瀏覽器包括firefox、chrome以及ie高版本都支持oninput方法監聽文本框變化,此外ie有自己的監聽方法:onpropertychange方法。根據這些我們就可以做兼容各種瀏覽器的文本框監聽方法:
var inputArea=document.getElementById('myInput');
if(window.addEventListener){
inputArea.addEventListener("input",fn,false)
}else{
inputArea.attachEvent("onpropertychange",fn);
}
實際情況下我們操作輸入框文字有很多種方式:用戶輸入、退格、刪除、剪切、粘貼及鼠標剪切與粘貼時都是改變輸入框內容。而在ie9中只有在輸入粘貼以及鼠標粘貼時觸發,
於是我們要針對ie9也要做兼容。
if(window.VBArray && window.addEventListener) { //IE9
inputArea.attachEvent("onkeydown", function() {
var key = window.event.keyCode;
(key == 8 || key == 46) && fn();//鍵盤backspace與delete
});
inputArea.attachEvent("oncut", fn);//剪切
inputArea.attachEvent('oncopy',fn);複製
}