88

经过一些处理后,我试图在外部 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;

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

4

8 回答 8

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

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

经测试,有效。


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

于 2012-05-16T05:40:35.647 回答
42

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

window.location.hash = "#mypara"
location.reload();
于 2013-10-03T23:08:54.440 回答
27

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

  1. location.reload()location.reload(true)在浏览器上像 F5 一样工作。如果之前加载完成,这会将所有表单数据发送回服务器。
  2. location.href在浏览器识别到 URL 更改之前不会刷新页面。哈希 (#paramname) 的更改不符合 URL 更改的条件,因此仅仅做是 location.href+="#paramname"行不通的。

因此,location.href+="?anything#paramname"应该将页面重新加载为新请求,就像?anythingURL 中的更改一样。

于 2013-09-16T18:16:49.237 回答
1
var loc = location.hash;
location.hash = " ";
location.hash = loc;
于 2015-04-11T03:02:57.900 回答
-1

试试这个

           var urlString=window.location.href;
           var url=urlString.split("#")[0];
           window.location.href = url + "#mypara";
于 2012-05-16T05:30:01.897 回答
-1

这对我有用:

var tabValue = document.URL;
window.location = tabValue.substring(0, tabValue.lastIndexOf("#"));
window.location.hash = "#tabs-3"; //Whatever is your hash value
location.reload();
于 2014-02-05T07:37:33.353 回答
-1

这对我有用

$('body').on('click', '.className', function () {
    var data = $(this).attr('href');
    alert(data);
    window.location.reload();
});
于 2015-11-18T18:46:07.893 回答
-1

这对我有用

window.location.href = baseUrl + "#/m/team";
 location.reload();
于 2017-01-31T10:20:38.690 回答