我需要在页面的哈希值发生变化时执行一个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/