L'oggetto MutationObserver non è disponibile in alcuni browser (come ad esempio IE10 ed inferiori). Tuttavia esiste una soluzione alternativa.
La soluzione è la seguente:
if( !MutationObserver ) {
var MutationObserver = function( target, callback ) {
this.target = target;
callback = callback || function() {};
this.timer = null;
this.observe = function() {
var self = this;
self.timer = setInterval(function() {
callback( self.target );
}, 200);
}
this.disconnect = function() {
clearInterval( this.timer );
this.timer = null;
}
}
}
In pratica abbiamo creato un timer che ad intervalli regolari invoca una funzione di callback sull'elemento da monitorare. Esempio d'uso:
var target = document.getElementById( "test" );
var observer = new MutationObserver( target, function( element ) {
var cls = element.className;
console.log( cls );
});