相关疑难解决方法(0)

On - window.location.hash - 更改?

我正在使用Ajax和hash进行导航.

有没有办法检查是否window.location.hash改变了这样?

http://example.com/blah #123http://example.com/blah #456

如果我在文档加载时检查它,它可以工作.

但是如果我有基于#hash的导航,那么当我按下浏览器上的后退按钮时它就不起作用了(所以我从#456跳到了#123).

它显示在地址框内,但我无法用JavaScript捕获它.

javascript ajax javascript-events fragment-identifier hashchange

548
推荐指数
9
解决办法
39万
查看次数

所有浏览器的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万
查看次数

在DOM元素的样式对象发生更改后,您是否可以使用javascript钩子触发器?

元素有一个javascript style对象,其中包含css样式的不同名称和值.我想在每次更改此对象而不使用轮询时触发函数.有没有办法以跨浏览器兼容的方式执行此操作,并且可以与第三方代码可靠地工作(因为假设您提供了一个插件脚本)?将javascript事件绑定为DOMAttrModifiedDOMSubtreeModified不足以因为它们无法在Chrome中运行.

javascript css jquery javascript-events

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

侦听对Javascript对象值的更改

是否有可能(使用jQuery或其他方式)监听非DOM Javascript对象(或变量)的值的变化?所以,例如,我有:

function MyObject()
{
    this.myVar = 0;
}

var myObject = new MyObject();
myObject.myVar = 100;
Run Code Online (Sandbox Code Playgroud)

有没有办法在myVar更改值时调用并调用函数?我知道我可以使用getter/setter,但在以前版本的IE中不支持它们.

javascript jquery

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

如何在JavaScript中观看复杂对象及其变化?

我试图找到类似的功能AngularJS的$watch功能(如定义在这里),它允许"看复杂的对象",它们的变化.据我所知,我理解它能够观察对象内变量的变化,即使它们本身也在一个对象内(在被观察的对象内).

我希望在原生JavaScript(或JQuery)中具有相同的"可观察性",但我似乎找不到任何东西.我知道Object.watch()和在这里Polyfill找到的但是我很确定这只是参考检查或只监视对象内的'立即'变量而不是嵌套的任何东西可以这么说并且不检查对象内的"深"属性.

有谁知道任何图书馆,功能,任何可以帮助我提供这种"深度观察"能力的东西?或者甚至帮助我Object.watch()更好地理解它是否实际上提供了我想要的东西?

我正在创建一个实时音乐应用程序,并希望在仪器上有一个"深度"监视,以便我可以看到它的任何变量,参数等是否发生变化,以便我可以将它同步到服务器和其他客户端.

任何帮助将不胜感激,谢谢!

javascript jquery watch dom-events angularjs

3
推荐指数
1
解决办法
676
查看次数