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

IT技术 javascript jquery
2021-01-18 13:53:53

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

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

6个回答
window.location.href += "#mypara";
location.reload();

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

经测试,有效。


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

好吧,我最后不得不使用查询字符串。"window.location.href = url + "&action=reload";"。在页面加载事件上检查 javascripot 中的操作查询字符串,并执行此操作“window.location.hash = "#uploadImgSection";”。这不是它应该工作的方式,但我现在必须以这种方式来完成这项工作。
2021-03-25 13:53:53
好吧,我对 POST 了解不多。如果你愿意,你可以提出一个关于它的新问题。
2021-03-28 13:53:53
另一件事。它确实刷新了页面,但它包含重新加载后的发布数据。我怎样才能清理那些?那些发布数据阻止我删除数据行。
2021-04-03 13:53:53
@Derek 朕会功夫你是个天才 :)
2021-04-06 13:53:53
请阅读这个。stackoverflow.com/questions/2405117/... 它确实包括那些阻止我执行其他回发事件的 POST 数据。
2021-04-13 13:53:53

我想更新这个问题,因为我发现 usingwindow.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"应该像?anythingURL 中的更改一样将页面作为新请求重新加载

很好的答案。这是一个熟版本: window.location='<?php echo $_POST['back'] ?>&rand='+((new Date()).getTime()%1000000000)+'#myhash';
2021-03-18 13:53:53
与其他帖子相比,IMO 最好地回答了这个问题。例如,它不需要更改可能已作为库的一部分编写的底层代码。
2021-03-19 13:53:53
另一个:location.href+='&rand='+Math.rand()+'#myhash';
2021-03-20 13:53:53
最接近的答案(也许其他答案在 2012 年是正确的,但在 2018 年它们都是错误的),但是它存在将条目添加到用户地址栏历史记录的问题,如果您只是尝试刷新,那就不好了相同的历史状态...
2021-04-05 13:53:53
Johan, Math.rand() 应该改为 Math.random()
2021-04-13 13:53:53
var loc = location.hash;
location.hash = " ";
location.hash = loc;
仅代码答案不是很有用。这是在做什么?为什么有效?
2021-03-27 13:53:53

试试这个

           var urlString=window.location.href;
           var url=urlString.split("#")[0];
           window.location.href = url + "#mypara";
这也根本不会重新加载页面。
2021-03-29 13:53:53
“试试这个”仅代码答案不是很有用。它在做什么?为什么有效?
2021-03-31 13:53:53