// выбираем текущий элемент
var target = document.querySelector('#some-id');
// создаем экземпляр наблюдающего объекта
var observer = new
MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
console.log(mutation.type);
});
});
// конфигурируем его:
var config = { attributes: true, childList: true,
characterData: true
}
// передаем элемент и конфигурацию в метод запуска наблюдения
observer.observe(target, config);
// позже процесс наблюдения можно остановить
observer.disconnect();
|
<!DOCTYPE
html>
<ol contenteditable oninput="">
<li>Press
enter</li
</ol>
<script>
var MutationObserver =
window.MutationObserver || window.WebKitMutationObserver ||
window.MozMutationObserver;
var list = document.querySelector('ol');
var observer = new
MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (mutation.type === 'childList') {
var list_values =
[].slice.call(list.children)
.map( function(node) { return
node.innerHTML; })
.filter( function(s) {
if (s === '<br />') {
return false;
}
else {
return true;
}
});
console.log(list_values);
}
});
});
observer.observe(list, {
attributes:
true,
childList:
true,
characterData:
true
});
</script>
|
var MutationObserver =
window.MutationObserver || window.WebKitMutationObserver ||
window.MozMutationObserver;
var list = document.querySelector('ol');
var observer = new
MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (mutation.type === 'childList') {
var list_values =
[].slice.call(list.children)
.map( function(node) { return
node.innerHTML; })
.filter( function(s) {
if (s === '
/>') {
return false;
}
else {
return true;
}
});
console.log(list_values);
}
});
});
observer.observe(list, {
attributes:
true,
childList:
true,
characterData:
true
});
- Original Proposal
- W3C Spec
- Screencast by Rafael Weinstein
- Mutation
Summary, JS
библиотека которая упрощает использование MutationObserver.
Источник: https://hacks.mozilla.org/2012/05/dom-mutationobserver-reacting-to-dom-changes-without-killing-browser-performance/
Комментариев нет:
Отправить комментарий