2013-08-23 5 views
0

jquery 데이터 테이블의 현재 상태에 따라 동적으로 변경되는 div 요소가 있습니다. 예를 들어 필터링을하면 "1에서 100까지의 145 개 항목 표시 (총 1,064 개의 항목에서 필터링 됨)"가 표시됩니다.IE9가 DOMCharacterDataModified 이벤트를 발생시키지 않습니다.

테이블 중 하나가로드되는 방식에 따라 1,064가 오해의 소지가 있습니다. 반환되는 레코드는 1,064이며 레코드는 그룹으로 나뉘어져 있으므로 가장 많이 볼 수있는 것은 266과 같습니다. 따라서 "1에서 100까지 표시 145 항목 (266 항목에서 필터링) ".

하나의 그룹 만이 아니라 모든 1,064가 필요한 이유는 그룹 사이를 전환 할 수 있으며 그룹 번호 열을 필터링하여 수행합니다.

오해의 소지가있는 숫자 때문에 div의 텍스트를 올바른 번호로 수정하는 DOMCharacterDataModified 수신기가 있습니다. 문제는 동일한 레코드를로드하지만 일부 regexp 필터링을 통해 모든 그룹을 볼 수있는 다른 테이블에도 사용되는 코드입니다.

이제는 Chrome에서 완벽하게 작동하지만 DOMCharacterDataModified는 IE9에서 실행되지 않습니다.

리스너 함수

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

DIV.

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

청취자.

doc.addEventListener("DOMCharacterDataModified", testFunct); 

또한 시도했습니다.

doc.attachEvent("DOMCharacterDataModified", testFunct); 

하지만 크롬에서 오류가 발생하여 작동하지 않았습니다.

어떤 도움을 주시면 감사하겠습니다.

답변

1

Microsoft마다 많은 변형 이벤트가 IE9 이상에서 더 이상 발생하지 않는 것처럼 보입니다. DocumentMode가 IE9 이상인 경우 DOMCharacterDataModified가 실행되지 않습니다.

저는 IE11 BHO를 직접 개발 중입니다. DOMCharacterDataModified와 같은 일부 돌연변이 이벤트가 발생하지 않는 것을 관찰했습니다. 링크를 확인하십시오.

대신 Mutation Event Observers를 사용하는 것으로 보입니다. 링크 2를 체크 아웃 IE Event Technical Specs

Migrating From Mutation Events to Mutation Event Observers.