如何使用JavaScript重定向到当前页面?

27

当点击链接时,它应该重定向到当前页面。我如何使用JavaScript实现这个功能?

4个回答

48

假设你的意思是该链接应刷新当前页面,你可以使用window.location.reload()。在jQuery中,它看起来像这样:

<a href="#" id="myLink">Refresh current page</a>
$("#myLink").click(function() {
    window.location.reload();
});

在纯JavaScript中,它看起来像这样:

document.querySelector("#myLink").addEventListener('click', function() {
    window.location.reload();
});

假设他/她使用jQuery。 - DannyThunder
@DannyThunder 这个问题已经被标记了。 - Rory McCrossan
啊,我没注意到那个小标签 :-) - DannyThunder
2
为了以后的参考,如果这个答案已经足够回答帖子所有者的问题,我认为它并没有真正回答问题本身。如果用户刚刚发布了一个帖子,他将会再次发布该帖子,这并不是该问题的解决方案。重定向到相同的URL与重定向到任何URL相同。这取决于所需的行为(重定向或导航)。 - Nandolcs

12

重定向到当前URL与重定向到任何URL相同:

// Same as clicking on a link
window.location.href = window.location.href;

// Same as HTTP redirecting
window.location.replace(window.location.href);

2
请原谅我的无知,如果我们不是在谈论服务器端重定向(例如Apache中的mod-rewrite),那么“HTTP重定向”是什么意思?当然,浏览器中JavaScript尝试更改浏览器的当前地址时,这只是一种简单的导航吗?其中一个的物理可检测副作用是否与另一个不同,还是这是一个逻辑上的区别?这比7年前Rory McCrossan提出的window.location.reload()解决方案好吗(编辑:在原始问题的评论中被Frédéric Hamidi稍微抢先了一步)? - Neek
我认为这里列出的第一个选项是正确的答案。 location.reload似乎不会重新加载页面,就像它最初加载时那样,而location.href = location.href则可以。 - Mmm

4

以下是使用原生JS而不是内联或jQuery的方法:

<a href="#" id="myLink">Refresh current page</a>  

<script>
    document.querySelector("a#myLink").onclick = function(){
        window.location.reload();
    }; 
</script>

在考虑使用querySelector()时,请注意支持的浏览器列表


4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接