DOM изменить событие для Opera - PullRequest
3 голосов
/ 23 января 2012

До сих пор я нашел, как это сделать в Chrome, событие DOMSubtreeModified: Есть ли прослушиватель изменений DOM JavaScript / jQuery?

Очевидно, он работает в Firefox и IE 9тоже.

Знаете ли вы решения для обнаружения изменений DOM в других браузерах, таких как Opera?И, может быть, старые версии, если IE, потому что я уверен, что вышеупомянутое событие не работает в IE 6-7-8 ...

Или вы знаете другие события, которые я мог бы использовать?Я в основном ищу способ определить, были ли определенные элементы вставлены в документ через ajax-запросы ...

Ответы [ 2 ]

3 голосов
/ 23 января 2012

Opera поддерживает мутационные события DOMNodeInserted и DOMNodeRemoved. Я тестировал, и они работали на Firefox и G. Chrome тоже.

$(document).bind("DOMNodeInserted, DOMNodeRemoved", function() {
    alert("DOM changed");
});

Если вы ориентируетесь на несколько браузеров, возможно, вы могли бы проверить, есть ли у Mordenizr какое-либо обнаружение для поддержки событий мутации DOM, это может помочь вам значительно упростить эти решения.

1 голос
/ 24 апреля 2012

onreadystatechange будет работать в IE8 и ниже. Поведение DHTML должно быть присоединено к элементу через htc, но файл htc не должен существовать:

if (!!document.addEventListener)
  {
  $(document.documentElement).get(0).addEventListener("DOMNodeInserted", bar, false);
  }
else
  {
  $(document.documentElement).get(0).addBehavior("foo.htc");
  $(document.documentElement).get(0).attachEvent("onreadystatechange", bar);
  }
...