请注意,Object.Watch
和Object.Observe
现在都弃用(如2018年6月的)。
我一直在寻找一种监视对象或变量更改的简便方法,我发现Object.watch()
Mozilla浏览器支持,但IE不支持。所以我开始四处搜寻,看看是否有人写过类似的东西。
我唯一发现的就是jQuery插件,但我不确定这是否是最好的方法。我当然在我的大多数项目中都使用jQuery,所以我不必担心jQuery方面的问题。
无论如何,问题是:有人可以向我展示该jQuery插件的有效示例吗?我在使其工作时遇到问题...
还是有人知道跨浏览器更好的替代方法吗?
回答后更新:
感谢大家的回应!我尝试了发布在此处的代码:http : //webreflection.blogspot.com/2009/01/internet-explorer-object-watch.html
但是我似乎无法使其与IE一起使用。下面的代码在Firefox中可以正常工作,但在IE中则不起作用。在Firefox中,每次watcher.status
更改都会调用document.write()
in watcher.watch()
,您可以在页面上看到输出。在IE中,这不会发生,但是我可以看到它watcher.status
正在更新值,因为最后一次document.write()
调用显示了正确的值(在IE和FF中)。但是,如果没有调用回调函数,那是没有意义的... :)
我想念什么吗?
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>");