javascript - Object.observe on document.location

标签 javascript object.observe

我需要在页面的哈希值发生变化时执行一个js脚本,我知道有很多方法可以知道哈希值何时发生变化,比如使用jQuery

$(window).on('hashchange', function() {
   // do something
});

我尝试使用 Object.observe 但它没有用,我只是想知道为什么它没有,为什么在更新 文档后回调没有触发.location 对象。

Object.observe(document.location, function(changes) { 
    console.log(changes);
});

最佳答案

document.location 与许多其他 DOM 对象一起属于宿主对象的类别,根据规范,它们不必像常规的 native JS 对象那样表现。虽然 Object.observe 可能适用于其中一些对象,但它的行为并不可靠,而且碰巧不适用于 document.location。

另一个它不起作用的例子是:

var el = document.createElement('div');
document.body.appendChild(el);
Object.observe(el, function(change) { console.log('changed ', change[0].name); })

el.id = "hello";
el.foo = "bar";

关于javascript - Object.observe on document.location,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29370477/

相关文章:

javascript - Electron 应用程序中是否有可用的 GridView 模块/组件?

javascript - 如何将数据从弹出脚本发送到crossrider中的background.js?

javascript - 观察定义属性的值时超出最大堆栈

javascript - 对象.观察顺序

angularjs - Object.observe是否会大大提升Angularjs?

javascript - 刷新时 jQuery 切换状态发生变化

javascript - JavaScript 中的嵌套 for 循环

javascript - 单次触发单击事件监听器