Estaba buscando una manera fácil de monitorear un objeto o una variable en busca de cambios, y encontré Object.watch()
, que es compatible con los navegadores Mozilla, pero no con IE. Entonces comencé a buscar para ver si alguien había escrito algún tipo de equivalente.Object.watch() para todos los navegadores?
Lo único que he encontrado ha sido a jQuery plugin, pero no estoy seguro de si es la mejor manera de hacerlo. Ciertamente utilizo jQuery en la mayoría de mis proyectos, así que no me preocupa el aspecto jQuery ...
De todos modos, la pregunta: ¿alguien me puede mostrar un ejemplo de ese plugin de jQuery? Estoy teniendo problemas para hacerlo funcionar ...
O, ¿Alguien sabe de alguna alternativa mejor que funcione en el navegador?
Update después de 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 no pude hacer que funcione con IE. El siguiente código funciona bien en Firefox, pero no hace nada en IE. En Firefox, cada vez que se cambia watcher.status
, se llama al document.write()
en watcher.watch()
y puede ver el resultado en la página. En IE, eso no sucede, pero puedo ver que watcher.status
está actualizando el valor, porque la última llamada document.write()
muestra el valor correcto (en IE y FF). Pero, si la función de devolución de llamada no se llama, entonces eso es un poco inútil ... :)
¿Echo de menos 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>");
IIRC puede utilizar onPropertyChange en IE – scunliffe
Reemplazar document.write() con alerta(). debería funcionar bien. –