2013-08-23 104 views
0

我有一個div元素,根據jquery數據表的當前狀態動態更改。例如,當它被過濾時,它顯示「顯示145個條目中的1到100(從1,064總條目中過濾)」。IE9不發射DOMCharacterDataModified事件

基於加載其中一個表的方式,1,064會產生誤導,因爲返回的記錄是1,064個記錄已按組分組,因此您看到的最多的是類似於266的,因此「顯示1到100 145個條目(從266個條目中篩選)「。

所有需要1,064個而不僅僅是一個組的原因是您可以在組之間進行切換,並通過在組編號列上進行過濾來完成。

由於誤導性數字,我有一個DOMCharacterDataModified偵聽器,它將div中的文本修改爲正確的數字。問題是這樣做的代碼也用於另一個加載相同記錄的表,但能夠通過一些正則表達式過濾來查看所有組。

現在,所有這些在Chrome中都很完美,但DOMCharacterDataModified在IE9中不會被觸發。

的偵聽器函數

function testFunct() { 
    debugger; 
    var pause = ""; 
} 

股利。

var doc = document.getElementById("tMain_info"); 

聽者。

doc.addEventListener("DOMCharacterDataModified", testFunct); 

也試過。

doc.attachEvent("DOMCharacterDataModified", testFunct); 

但是,這並沒有工作,並導致鉻的錯誤。

任何幫助表示讚賞。

回答

1

看來,每微軟很多突變事件不再在IE9和更高版本中觸發。這就是說,如果DocumentMode是IE9或更高版本,DOMCharacterDataModified將不會啓動。

我正在開發自己的IE11 BHO,並且我觀察到一些突變事件(如DOMCharacterDataModified)未觸發。 檢查鏈接。

看來您應該使用突變事件觀察者。 檢出LINK2 IE Event Technical Specs

Migrating From Mutation Events to Mutation Event Observers.