4

window.location.hash=''使用在 Firefox 中重新加载的页面从 URL 中删除哈希后。

编辑

例子:

wwww.Mysite.come/#page=1

单击按钮,我将使用以下代码删除哈希值

window.location.hash=''

删除哈希页面后,将在 Firefox 中重新加载。

我不想重新加载页面我只想从 URL 中删除哈希

如何解决?

4

5 回答 5

22

以防万一其他人仍在寻找解决方案。页面加载时试试这个。

history.pushState("", document.title, window.location.pathname);
于 2013-05-23T16:54:06.607 回答
4

来自https://developer.mozilla.org/en/DOM/window.location

例子

每当修改位置对象的属性时,将使用 URL 加载文档,就像使用修改后的 URL 调用 window.location.assign() 一样。

我认为这个问题解决了你想要使用 jQuery 的问题:

在jQuery中更改哈希而不重新加载

其他相关问题:

更改浏览器中的 URL 而不使用 JavaScript 加载新页面

如何在不刷新页面的情况下使用 JavaScript 从 window.location 中删除哈希?

如何在不创建页面重新加载的情况下更改 Firefox window.location.hash?

于 2012-04-05T09:54:48.737 回答
2

如果我理解正确,

<a href="#someElementID" id="myLinkName">Some Text</a>

在浏览器中单击上面的链接通常会在地址栏中添加一个哈希,例如www.websitename.com#someElementID <- 这就是您要防止的,是吗?

我刚刚测试的有效且不刷新页面的解决方案是:

event.preventDefault();

这适用于“click()”事件,该事件涉及链接到元素 id 的锚标记,例如上面的锚标记示例。实际上,它在您的“click()”事件中看起来像这样:

<script>
    $('#myLinkName').click(function(){
        event.preventDefault();
        //the rest of the function is the same.
    });
</script>

现在,单击相同的链接会在地址栏留下相同的 URL www.websitename.com,而不会通过单击锚点添加散列。

于 2013-07-15T09:33:37.037 回答
2

我们可以通过在 click 函数中返回 false 来删除/逃避附加哈希。

<script>
    $('#add_user').click(function(){       
     //your custom function code here..
    return false;
});
</script>

<a id="add_user" href="#">Add Card</a>
于 2016-04-27T08:51:06.740 回答
0

您会发现w3schools的这个示例对您的需要非常有用,而且它为您提供了与所有浏览器兼容的优雅滚动移动,请查看以下代码:

  // Add smooth scrolling to all links
  $("a").on('click', function(event) {

// Make sure this.hash has a value before overriding default behavior
if (this.hash !== "") {

    // Prevent default anchor click behavior
    event.preventDefault();

    // Store hash
    var hash = this.hash;

    // Using jQuery's animate() method to add smooth page scroll
    // The optional number (800) specifies the number of milliseconds it takes to scroll to the specified area

      $('html, body').animate({
          scrollTop: $(hash).offset().top
       }, 800, function(){

      // Add hash (#) to URL when done scrolling (default click behavior)
      // obvously you will ignore this step because you want to remove the hash in first place - but just in case you want turn it on again

      window.location.hash = hash;
    });
   } // End if
  });
});
于 2020-05-27T00:13:18.527 回答