JavaScript事件hashchange和document.title
我对在Firefox的hashchange事件上运行的一些JavaScript代码有问题 代码应该更新web文档以及document.title。最后修改document.title 如果不修改document.title,一切正常。如果更新document.title,代码有时会失败,但并不总是如此。症状如下JavaScript事件hashchange和document.title,javascript,firefox,hashchange,Javascript,Firefox,Hashchange,我对在Firefox的hashchange事件上运行的一些JavaScript代码有问题 代码应该更新web文档以及document.title。最后修改document.title 如果不修改document.title,一切正常。如果更新document.title,代码有时会失败,但并不总是如此。症状如下 document.title根据单击的带有哈希URL的A标记正确更新 浏览器中的URL字段不会更新为新值 即使在更改document.title之前在代码行上执行了其他文档更新,也不会
- document.title根据单击的带有哈希URL的A标记正确更新
- 浏览器中的URL字段不会更新为新值
- 即使在更改document.title之前在代码行上执行了其他文档更新,也不会执行任何其他文档更新
<ul>
<li><a href="#one">Page one</a></li>
<li><a href="#two">Page two</a></li>
<li><a href="#three">Page three</a></li>
</ul>
我不应该在hashchange事件中修改document.title,还是这是Firefox的问题
我在Firefox论坛上问了这个问题。他们把我送到这里。在浏览器控制台中观察到任何错误吗?在Firefox Nightly 90.0a1中,一切都正常。这里也没有重做。你说的“Firefox论坛”是什么意思?这是一个错误。您应该在报告时尝试进行更好的重新编程,这将导致问题在您的系统上接近100%的时间。控制台中没有错误。对于Firefox论坛,我的意思是()。我做了更多的调查,这不仅仅发生在hashchange事件上。在单击处理程序中也会发生同样的情况,该处理程序使用history.pushState更改URL,然后更新document.title和一些内容。根据观察,发生这种情况时链接将保持活动状态。我不可能每次都复制,但它最终总会发生。我想我可以得出结论,这是我的Firefox版本的一个问题。
function updatepage() {
const page = location.hash.slice(1);
document.querySelector('h1').textContent = `Welcome to page ${page}`;
document.title = `Page ${page}`;
}
window.addEventListener('hashchange', updatepage);