페이지가로드 된 후 dom에 iFrame을 주입하는 Chrome 확장 프로그램이 있습니다.Chrome 확장 프로그램 외부에서 생성 된 DOM 변경 감지
또한 DOM 변경 사항을 수신하고 싶지만 iFrame을 주입 한 결과 해고 된 DOMSubtreeModified
을 무시하고 싶습니다. 따라서 iFrame을 삽입하기 전후에 어떤 이벤트가 발생하더라도 캡처하고 싶습니다.
var processRequest = function() {
$('body').bind('DOMSubtreeModified', DOMModificationHandler);
return 'complete';
}
function DOMModificationHandler() {
$(this).unbind('DOMSubtreeModified');
setTimeout(function() {
//skip this if it was my iFrame injection that caused this event
//someLocalFunction();
$('#ContentContainer').bind('DOMSubtreeModified', DOMModificationHandler);
},1000);
}
내 주사를 구별하기 위해 할 수있는 일, 그리고 다른 DOM 이벤트, 때 DOMModificationHandler
화재 있는가 :
다음은 DOM의 변화에서 찾고 내 콘텐츠 스크립트의 기초입니까?
** 업데이트 : 일부 유형의 ID 또는 데이터 요소를 iFrame에 추가하는 것을 고려했지만 이벤트가 발생한 iFrame이 아니라 그곳에 있음을 알려줍니다. 특히 dom의 일부를 업데이트 한 AJAX 요청이있을 때. ID 또는 데이터 속성은 이미 존재하므로 돔 변경의 원인을 아직 모릅니다.
그래, 그 트릭을했다. 이벤트 인수를 DOMModificationHandler 함수에 추가했습니다. 거기에서 e.target.id가 존재하는지 테스트합니다. 이를 통해 필자는 필 요한 방식으로 이벤트를 필터링 할 수 있습니다. 감사! –