【问题标题】:Reload page after Changing URL更改 URL 后重新加载页面
【发布时间】:2015-10-15 14:34:16
【问题描述】:

我想在 # 之后的 URL 中添加一个文本,然后重新加载页面。

我已经完成了:

<a href="current_url+'#'+sample" onclick="location.reload();">Click Here</a>

它在 Google Chrome 中运行良好,但在 Firefox 中它会重新加载页面,但 url 片段“#sample”不存在。这意味着它让我回到没有# 字符串的同一页面。但我肯定需要它。

我也试过了:

$('a').click(function(){
          location.reload(true);       //even window.location.reload(true);
});

但没有得到阳性结果。

我该怎么办?

【问题讨论】:

  • 以及为什么在添加哈希标签后需要重新加载页面?
  • 使用 hash 重新加载页面听起来有点奇怪,因为 hashpart 的作用正好相反,防止重新加载,但仍然更改 url。你想做什么?
  • 在页面加载时,我检测哈希后的文本并将其发送到带有 ajax 的控制器并相应地更改页面上的内容。
  • 也许您可以这样做,使用来自您的 ajax 调用的 data 回调更新页面...而不需要重新加载页面?
  • 我同意@camelCase 的观点

标签: javascript php google-chrome url firefox


【解决方案1】:

通过在锚标记的 onclick (with window.location) 中添加链接来修复问题。

<a href="javascript:void(0)" onclick="window.location='current_url+'#'+sample'; location.reload();">Click Here</a>

【讨论】:

    【解决方案2】:

    基本上,您获取当前网址,即document.location.href,然后添加您想要的文本:

    <a href="javascript:void(0);" onclick="changeUrl(sample);">Click Here</a>
    
    function changeUrl(text) {
        document.location.href = document.location.href + "#" + text;
    }
    

    请注意,此解决方案不需要 jQuery。

    【讨论】:

    • 我也试过了..但它没有帮助..我也不能在href中添加javascript:void ...我只想要一个url
    • 那么,使用 jQuery $('a').attr('href', $('a').attr('href') + "#" + sample); ?