ie onpropertychange和firefox的oninput

 if(navigator.userAgent.indexOf("MSIE")>=0) { 
  document.getElementById("cusRequestName").attachEvent('onpropertychange',function(o){
   if(document.getElementById("cusRequestName").value==""){
    document.getElementById("cusRequestNameC").checked = false;  
   }else{
    document.getElementById("cusRequestNameC").checked = true;;  
   }
  });
  
 }//IE

 if(navigator.userAgent.indexOf("Firefox")>=0){  
  document.getElementById("cusRequestName").addEventListener('input',function(o){
   if(document.getElementById("cusRequestName").value==""){
    document.getElementById("cusRequestNameC").checked = false;  
   }else{
    document.getElementById("cusRequestNameC").checked = true;;  
   }
  },false);
 }//FIRFOX

 根據瀏覽器的不同,使用的方法也不同。ie下的'onpropertychange'可以檢測到一個text的value變化,無論是手動輸入修改,還是因爲js腳本修改了value的值。

但是firefox就不同的,對於firefox只能用oninput來檢測到手動輸入改變的value值,對於js腳本改變的value,就無能爲力檢測不到了。

類似的,firefox有一個類似的方法DOMAttrModified,但是這個也只是限於attribute的變化,value值的改變同樣檢測不出來。一定要注意:是attribute的變化,如果下次還是用了setAttribute("x",1),那麼是不會alert的,因爲這次和上次attribute的值沒有變化。

 

<div id="div1">dfd</div>
<script>
document.getElementById("div1").addEventListener("DOMAttrModified",function(e){
    alert("屬性發生改變");
     },false);
document.getElementById("div1").setAttribute("x",1);
</script>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章