2012-02-27 20 views
31

Powiel możliwe:
Detect changes in the DOMCzy jest jakieś zdarzenie "on DOM change"?

muszę konfiguracji programu obsługi zdarzeń, które mają być uruchamiane, gdy coś jest dołączany/zmieniony/usunięty na DOM. This answer nie działa w moim przypadku. DOM może być modyfikowany przez programistów zewnętrznych, a przy każdej zmianie DOM musimy uruchomić nasz skrypt, aby zweryfikować kod. Zdarzenie nie powinno uruchamiać się na wejściu/tekście/wybranej zmianie.

Robimy nie kierować wszystkie przeglądarki. Tak długo jak działa na Webkit (Chrome, Safari), jest wystarczająco dobre.

Wszelkie pomysły?

+6

Czy ktoś ma link do kwestii, że jest dokładną kopią? Przybyłem tutaj z google. – travis

+5

@travis: nie dokładny duplikat, ale blisko: http://stackoverflow.com/questions/3219758/detect-changes-in-the-dom – Sherzod

+2

@travis: Tak naprawdę znalazłem odpowiedź, która pasuje do mojego przypadku: używając 'DOMSubtreeModified' wydarzenie, ale musisz sprawdzić obsługę przeglądarki. Webkit działa dobrze z tym. – Sherzod

Odpowiedz

3

Nie wydaje mi się, aby istniało takie zdarzenie we wszystkich przeglądarkach. Pobiegłabym z niestandardowym zdarzeniem i uruchomiłbym go za każdym razem, gdy manipulowałem domem.

//Subscribe to domChanged event 
$(document).bind('domChanged', function(){ 
    alert('Dom changed'); 
}); 

//Trigger the domChanged event 
$(document).trigger('domChanged'); 
+16

Problem stany dom jest zarządzany przez stronę trzecią. więc to nie zadziała. – Myster

+1

'domChanged' powinno być stałą zdefiniowaną w module zdarzeń. Np. 'Export const domInjected = 'myDOMInjected';' (ES6) Możesz także chcieć uważać na użycie czegoś, co może już istnieć w niedalekiej przyszłości ... takie jak DOMNodeInserted –

Powiązane problemy