我使用window.onhashchange来检测浏览器哈希更改。但是,如果以非编程方式更改散列,是否只有一种方法可以触发回调?
我不是在问如何使用onhashchange。我试图避免在以编程方式设置哈希时触发它。
基本上,我想做类似的事情:
window.onhashchange = () => { /* ... */ };
但如果代码执行以下操作,我不希望触发回调:
window.location.hash = 'hello-world';
谢谢!
答案 0 :(得分:1)
我最终通过简单地设置一个标志来解决它,这似乎是一个黑客,但鉴于JavaScript执行环境是单线程的,应该可以正常工作。