为什么在 location.hash 上不自动刷新输出?
Why doesn't output refresh automatically on location.hash?
单击 link 时不输出新位置哈希。
我很困惑为什么浏览器不输出更新后的变量。
<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>
当我点击第一个link时,浏览器中的地址变为#2019-01,但p.innerHTML什么也没有显示。
我希望它显示 #2019-01。
如果我点击 crtl r,重新加载页面,然后 p.innerHTML 显示 #2019-01。
为什么我必须强制重新加载才能获得输出?
有没有办法在不重新加载页面的情况下获取更新的 location.hash 值?
我建议您创建一个 showHash
函数,然后在页面加载时立即调用它。此外,您可以向 window.onhashchange
添加一个事件侦听器,以便在哈希更改时随时调用 showHash
函数。
showHash();
function showHash() {
var p = document.querySelector('p');
p.innerHTML = location.hash;
}
window.onhashchange = showHash;
<html>
<body>
<p></p>
<a href="#2019-01">1</a>
<a href="#2019-02">2</a>
</body>
</html>
单击 link 时不输出新位置哈希。
我很困惑为什么浏览器不输出更新后的变量。
<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>
当我点击第一个link时,浏览器中的地址变为#2019-01,但p.innerHTML什么也没有显示。 我希望它显示 #2019-01。
如果我点击 crtl r,重新加载页面,然后 p.innerHTML 显示 #2019-01。
为什么我必须强制重新加载才能获得输出? 有没有办法在不重新加载页面的情况下获取更新的 location.hash 值?
我建议您创建一个 showHash
函数,然后在页面加载时立即调用它。此外,您可以向 window.onhashchange
添加一个事件侦听器,以便在哈希更改时随时调用 showHash
函数。
showHash();
function showHash() {
var p = document.querySelector('p');
p.innerHTML = location.hash;
}
window.onhashchange = showHash;
<html>
<body>
<p></p>
<a href="#2019-01">1</a>
<a href="#2019-02">2</a>
</body>
</html>