相关疑难解决方法(0)

所有浏览器的Object.watch()?

请务必阅读以下所有评论.不推荐使用Object.Watch和Object.Observe.请参阅Elliot B对更新(截至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中,每次Object.Observe更改Object.watch()watcher.status都会调用in ,您可以在页面上看到输出.在IE中,这不会发生,但我可以看到document.write()更新值,因为最后一次watcher.watch()调用显示正确的值(在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>");
Run Code Online (Sandbox Code Playgroud)

javascript jquery dom-events

116
推荐指数
5
解决办法
9万
查看次数

如何观察阵列变化?

在Javascript中,有没有办法在使用push,pop,shift或基于索引的赋值修改数组时收到通知?我想要一些可以触发我能处理的事件的东西.

我知道SpiderMonkey中的watch()功能,但只有当整个变量设置为其他内容时才有效.

javascript dom-events

88
推荐指数
5
解决办法
7万
查看次数

监视JavaScript中的对象属性更改

可能重复:
所有浏览器的Javascript Object.Watch?

我刚刚阅读了Mozilla的watch()方法文档.它看起来非常有用.

但是,我找不到类似于Safari的东西.Internet Explorer都没有.

如何管理跨浏览器的可移植性?

javascript properties cross-browser object watch

37
推荐指数
1
解决办法
5万
查看次数

用于IE11的ES6代理Polyfill

IE11不会也不会实现ES2015代理对象.然而,IE11的延长支持终止于2025年10月14日.

有没有办法为IE11填充代理对象?所有其他浏览器都支持Proxy.

如果是,那么我们今天都可以在生产中使用它.如果没有,那么我们将不得不等待近十年......

编辑:我专门针对IE11,因为我知道IE通常具有我通常不知道的IE特定功能.

Edit2:我特别感兴趣的是能够实现一个全能拦截器.与__getattr__Python 类似.它只需要在IE11中工作.

javascript internet-explorer ecmascript-6 internet-explorer-11 es6-proxy

30
推荐指数
2
解决办法
2万
查看次数