我location.hash用来滚动到我页面的某个地方.当位置没有哈希时,它工作正常.但如果位置已具有相同的哈希值,则它不起作用.
例如,location.hash = 'a';滚动到<div id="a"></div>.现在location.href会像http://www.example.com/test.html#a.如果location.hash = 'a';再次触发,窗口将不会滚动.这只发生在Chrome和Safari中.
我在Safari中使用location.hash滚动页面时找到了一个解决方案,但我不想添加不必要的标记.
我也试过了location.href = '#a'.这工作正常,但我担心它会导致页面重新加载.有人有更好的想法吗?
Mar*_*kka 17
最好的办法是暂时用一些你知道在页面上不存在的值替换哈希值,然后重新加载试图访问的哈希值.
location.hash = 'a';
// this is the function that changes the hash
function setHash(newHash) {
location.hash = 'someHashThatDoesntExist';
location.hash = newHash;
}
setHash('a');
Run Code Online (Sandbox Code Playgroud)
这应该够了吧.
| 归档时间: |
|
| 查看次数: |
4567 次 |
| 最近记录: |