Tieni presente che Object.Watch
e Object.Observe
sono entrambi deprecati ora (a partire da giugno 2018).
Stavo cercando un modo semplice per monitorare un oggetto o una variabile per le modifiche e ho scoperto Object.watch()
che è supportato nei browser Mozilla, ma non in IE. Così ho iniziato a cercare in giro per vedere se qualcuno avesse scritto una sorta di equivalente.
L'unica cosa che ho trovato è stato un plugin jQuery , ma non sono sicuro che sia il modo migliore per farlo. Sicuramente uso jQuery nella maggior parte dei miei progetti, quindi non sono preoccupato per l'aspetto jQuery ...
Ad ogni modo, la domanda: qualcuno può mostrarmi un esempio funzionante di quel plugin jQuery? Ho problemi a farlo funzionare ...
Oppure qualcuno conosce alternative migliori che funzionerebbero su tutti i browser?
Aggiornamento dopo le risposte :
Grazie a tutti per le risposte! Ho provato il codice pubblicato qui: http://webreflection.blogspot.com/2009/01/internet-explorer-object-watch.html
Ma non riuscivo a farlo funzionare con IE. Il codice seguente funziona bene in Firefox, ma non fa nulla in IE. In Firefox, ogni volta che watcher.status
viene modificato, il document.write()
di watcher.watch()
si chiama e si può vedere l'output della pagina. In IE, ciò non accade, ma posso vedere che watcher.status
sta aggiornando il valore, perché l'ultima document.write()
chiamata mostra il valore corretto (sia in IE che in FF). Ma se la funzione di callback non viene chiamata, allora è inutile ... :)
Mi sto perdendo qualcosa?
var options = {'status': 'no status'},
watcher = createWatcher(options);
watcher.watch("status", function(prop, oldValue, newValue) {
document.write("old: " + oldValue + ", new: " + newValue + "<br>");
return newValue;
});
watcher.status = 'asdf';
watcher.status = '1234';
document.write(watcher.status + "<br>");