Javascript 使用哈希值重新加载页面

Javascript reload the page with hash value

本文关键字:加载 新加载 哈希值 Javascript      更新时间:2023-09-26

经过一些处理后,我正在尝试在外部javascript文件中使用此语句刷新页面。

window.location.href = window.location.href

它完美地重新加载了页面,但我想在重新加载后滚动到特定位置。所以,我把它放在页面上。

<a name="uploadImgSection"></a>

并将 JavaScript 更改为

window.location.href = window.location.href + "#mypara";

此代码也不会重新加载/刷新页面

window.location.hash = "#uploadImgSection";
window.location.href = window.location.href;

当我这样做时,它根本不会重新加载页面。有什么方法可以重新加载带有滚动条位置的页面吗?

window.location.href += "#mypara";
location.reload();

首先添加哈希,然后重新加载页面。哈希将保留在那里,页面将被重新加载。

经过测试,有效。


ps:如果 URL 中已经存在哈希,您可能希望通过 location.hash 直接更改它,而不是 .href

我想

更新这个问题,因为我发现使用 window.location.href += "#mypara" 会继续将参数附加到 url 中,即使它存在。我发现更好的方法是使用

window.location.hash = "#mypara"
location.reload();

这真的是一个老帖子,我仍然会尝试用正确的答案组合来回答。

  1. location.reload()location.reload(true)的工作方式类似于浏览器上的 F5。如果先前加载已完成,这会将所有表单数据发布回服务器。
  2. location.href不会刷新页面,直到浏览器识别出 URL 更改。 哈希 (#paramname) 中的更改不符合 URL 更改的条件,因此只是 location.href+="#paramname"行不通。

因此,location.href+="?anything#paramname"应该在 URL 中更改?anything将页面作为新请求重新加载。

var loc = location.hash;
location.hash = " ";
location.hash = loc;

试试这个

           var urlString=window.location.href;
           var url=urlString.split("#")[0];
           window.location.href = url + "#mypara";

这对我有用:

var tabValue = document.URL;
window.location = tabValue.substring(0, tabValue.lastIndexOf("#"));
window.location.hash = "#tabs-3"; //Whatever is your hash value
location.reload();

这对我来说是工作

window.location.href = baseUrl + "#/m/team";
 location.reload();
这对

我有用

$('body').on('click', '.className', function () {
    var data = $(this).attr('href');
    alert(data);
    window.location.reload();
});