Tenga en cuenta que Object.Watch
y Object.Observe
son a la vez obsoleta ahora (como el junio del 2018).
Estaba buscando una manera fácil de monitorear cambios en un objeto o variable, y encontré Object.watch()
que es compatible con los navegadores Mozilla, pero no con IE. Así que comencé a buscar para ver si alguien había escrito algún tipo de equivalente.
Casi lo único que he encontrado ha sido un complemento de jQuery , pero no estoy seguro de si esa es la mejor manera de hacerlo. Ciertamente uso jQuery en la mayoría de mis proyectos, así que no me preocupa el aspecto de jQuery ...
De todos modos, la pregunta: ¿Puede alguien mostrarme un ejemplo funcional de ese complemento de jQuery? Tengo problemas para que funcione ...
O, ¿alguien conoce alguna alternativa mejor que funcione en varios navegadores?
Actualización después de las respuestas :
¡Gracias a todos por las respuestas! Probé el código publicado aquí: http://webreflection.blogspot.com/2009/01/internet-explorer-object-watch.html
Pero parece que no pude hacerlo funcionar con IE. El siguiente código funciona bien en Firefox, pero no hace nada en IE. En Firefox, cada vez que watcher.status
se cambia, se llama a document.write()
in watcher.watch()
y puedes ver el resultado en la página. En IE, eso no sucede, pero puedo ver que watcher.status
está actualizando el valor, porque el últimodocument.write()
llamada muestra el valor correcto (tanto en IE como en FF). Pero, si no se llama a la función de devolución de llamada, entonces no tiene sentido ... :)
¿Me estoy perdiendo de algo?
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>");