Observe que Object.Watch
e Object.Observe
ambos estão obsoletos agora (em junho de 2018).
Eu estava procurando uma maneira fácil de monitorar um objeto ou variável quanto a alterações e descobri Object.watch()
que isso é compatível com os navegadores Mozilla, mas não com o IE. Então comecei a pesquisar para ver se alguém havia escrito algum tipo de equivalente.
Praticamente a única coisa que encontrei foi um plugin jQuery , mas não tenho certeza se esse é o melhor caminho a seguir. Eu certamente uso jQuery na maioria dos meus projetos, então não estou preocupado com o aspecto jQuery ...
De qualquer forma, a pergunta: Alguém pode me mostrar um exemplo funcional desse plugin jQuery? Estou tendo problemas para fazer funcionar ...
Ou alguém conhece alguma alternativa melhor que funcione em qualquer navegador?
Atualizar após as respostas :
Obrigado a todos pelas respostas! Experimentei o código postado aqui: http://webreflection.blogspot.com/2009/01/internet-explorer-object-watch.html
Mas eu não conseguia fazer funcionar com o IE. O código abaixo funciona bem no Firefox, mas não faz nada no IE. No Firefox, cada vez que watcher.status
é alterado, o document.write()
in watcher.watch()
é chamado e você pode ver a saída na página. No IE isso não acontece, mas posso ver que watcher.status
está atualizando o valor, pois a última document.write()
chamada mostra o valor correto (tanto no IE quanto no FF). Mas, se a função de retorno de chamada não for chamada, isso é meio inútil ... :)
Estou esquecendo 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>");