JavaScript重新加载哈希值的页面

我想刷新页面与外部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(); 

首先添加散列,然后重新加载页面。 哈希将保持在那里,并重新加载页面。

testing过,工作。


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"应该重新加载页面作为一个新的请求?anything

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

这对我工作:

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

这对我有效

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

这为我工作

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

尝试这个

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