2010-10-16 6 views

ответ

0

В this page, он говорит, что DIVs должны стрелять OnChange, когда их содержание изменяется.

Наблюдение за изменением не является эффективным методом. Изучали ли вы код, который изменяет содержимое DIV для запуска и события?

В качестве альтернативы вы можете установить таймер, который отслеживает изменения в вашем div и запускает какое-либо событие.

+0

-1 'onchange' чувствителен к регистру, и это не кросс-браузер – galambalazs

1

Вы можете проверить содержимое элемента по сравнению с предыдущим значением.

Получить элемент смотреть

var div = document.getElementById("w"); 

Создать Бодрствующего:

var w1 = { watch: null, prev: div.innerHTML }; 

Начало наблюдающий. Каждый 100 мс будет сравнивать предыдущее значение с текущим значением, если он отличается, он будет обновлять значение и запускать любые действия.

function Watch(w, e) 
{ 
    w.watch = setInterval(function() { 
     if (e.innerHTML != w.prev) 
     { 
      w.prev = e.innerHTML; 
      alert("changed"); 
     } 
    }, 100); 
} 

Watch(w1, div); 

See this example on jsFiddle.

2

В современных браузерах вы можете использовать мутации DOM события как DOMSubtreeModified, DOMCharacterDataModified. В IE у вас есть onchange событие, которое вы можете использовать. Для всех других браузеров вы можете настроить таймер для проверки того, был ли контент изменен.