Recentemente mi sono imbattuto in questa fantastica funzione MutationObserver
che conserva le tracce delle modifiche su qualsiasi elemento dom. Ho usato il codice che è stato mostrato sulla rete di sviluppatori di Mozilla, ma non riesco a farlo funzionare. Questo è il codice che ho usato (link):Come usare MutationObserver?
// create an observer instance
var target = document.querySelector('#something');
console.log(target);
var observer = new WebKitMutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
console.log("Success");
//$('#log').text('input text changed: "' + target.text() + '"');
//console.log(mutation, mutation.type);
});
});
observer.observe(target, { attributes: true, childList: true, characterData: true });
//observer.disconnect(); - to stop observing
// test case
setInterval(function(){
document.querySelector('#something').innerHTML = Math.random();
},1000);
Il codice di cui sopra non sembra funzionare. Tuttavia se modifico lo stesso codice con un po 'di jQuery, tutto sembra funzionare bene (Demo here). C'è qualcosa che mi manca dai documenti o sto solo interpretando male la funzione di osservatore.
Grazie per il chiarimento. Dovrei fare più ricerche prima di saltare alle domande. :) –
È anche un argomento da utilizzare con strumenti come jQuery anche come JavaScript nativo e le API DOM sono diventate più potenti. L'API sottostante non (e IMO non dovrebbe) nascondere questi tipi di dettagli tecnici, quindi c'è beneficio per un ulteriore livello di astrazione dell'usabilità. –