Javascript 为什么';是否在location.hash上自动刷新输出?

Javascript 为什么';是否在location.hash上自动刷新输出?,javascript,hash,location,Javascript,Hash,Location,单击链接时不会输出新位置哈希 我不明白为什么浏览器不输出更新的变量 <html> <body> <p></p> <a href="#2019-01">1</a> <a href="#2019-02">2</a> </body> <script> var p = document.querySelector('p'); p.innerHTML = location.hash;

单击链接时不会输出新位置哈希

我不明白为什么浏览器不输出更新的变量

<html>
<body>
<p></p>
<a href="#2019-01">1</a>
<a href="#2019-02">2</a>
</body>
<script>
var p = document.querySelector('p');
p.innerHTML = location.hash; 
</script>
</html>

var p=document.querySelector('p'); p、 innerHTML=location.hash;
当我单击第一个链接时,浏览器中的地址更改为#2019-01,但p.innerHTML不显示任何内容。 我希望它能显示2019-01年

如果我点击CRTLR重新加载页面,那么p.innerHTML将显示#2019-01

为什么我必须强制重新加载才能获得输出?
是否有方法在不重新加载页面的情况下获取更新的location.hash值

我建议您创建一个
showHash
函数,然后在页面加载时立即调用它。此外,您还可以向
window.onhashchange
添加事件侦听器,以便在哈希更改时调用
showHash
函数

showHash();
函数showHash(){
var p=document.querySelector('p');
p、 innerHTML=location.hash;
}
window.onhashchange=showHash


我建议您创建一个
showHash
函数,然后在页面加载时立即调用它。此外,您还可以向
window.onhashchange
添加事件侦听器,以便在哈希更改时调用
showHash
函数

showHash();
函数showHash(){
var p=document.querySelector('p');
p、 innerHTML=location.hash;
}
window.onhashchange=showHash


当页面加载时,
脚本
标记之间的内容只运行一次。如果要在单击按钮时再次运行它,则必须在单击按钮时调用它
脚本
标记之间的内容仅在页面加载时运行一次。如果您想在单击按钮时再次运行它,则必须在单击按钮时调用它。谢谢,成功了,我尝试单击复选标记以接受您的答案,但它在我的浏览器中不起作用。它已被标记为已接受,可能只是您的浏览器需要一些时间进行更新。谢谢谢谢,成功了,我尝试单击复选标记接受您的答案,但它在我的浏览器中不起作用。它已被标记为已接受,可能只是您的浏览器需要一些时间进行更新。谢谢