Veuillez noter que Object.Watch
et Object.Observe
sont tous deux obsolètes maintenant (à partir de juin 2018).
Je cherchais un moyen simple de surveiller un objet ou une variable pour les changements, et j'ai trouvé Object.watch()
, qui est pris en charge dans les navigateurs Mozilla, mais pas IE. J'ai donc commencé à chercher pour voir si quelqu'un avait écrit une sorte d'équivalent.
La seule chose que j'ai trouvée est un plugin jQuery , mais je ne suis pas sûr que ce soit la meilleure façon de procéder. J'utilise certainement jQuery dans la plupart de mes projets, donc je ne suis pas inquiet pour l'aspect jQuery ...
Quoi qu'il en soit, la question: quelqu'un peut-il me montrer un exemple fonctionnel de ce plugin jQuery? J'ai du mal à le faire fonctionner ...
Ou, est-ce que quelqu'un connaît de meilleures alternatives qui fonctionneraient avec plusieurs navigateurs?
Mettre à jour après les réponses :
Merci à tous pour les réponses! J'ai essayé le code posté ici: http://webreflection.blogspot.com/2009/01/internet-explorer-object-watch.html
Mais je n'arrivais pas à le faire fonctionner avec IE. Le code ci-dessous fonctionne bien dans Firefox, mais ne fait rien dans IE. Dans Firefox, à chaque watcher.status
modification, le document.write()
in watcher.watch()
est appelé et vous pouvez voir la sortie sur la page. Dans IE, cela ne se produit pas, mais je peux voir que watcher.status
la valeur est mise à jour, car le dernier document.write()
appel montre la valeur correcte (à la fois dans IE et FF). Mais si la fonction de rappel n'est pas appelée, c'est un peu inutile ... :)
Est-ce que je manque quelque chose?
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>");