window.location.hash=''
使用在 Firefox 中重新加载的页面从 URL 中删除哈希后。
编辑
例子:
wwww.Mysite.come/#page=1
单击按钮,我将使用以下代码删除哈希值
window.location.hash=''
删除哈希页面后,将在 Firefox 中重新加载。
我不想重新加载页面我只想从 URL 中删除哈希
如何解决?
window.location.hash=''
使用在 Firefox 中重新加载的页面从 URL 中删除哈希后。
编辑
例子:
wwww.Mysite.come/#page=1
单击按钮,我将使用以下代码删除哈希值
window.location.hash=''
删除哈希页面后,将在 Firefox 中重新加载。
我不想重新加载页面我只想从 URL 中删除哈希
如何解决?
以防万一其他人仍在寻找解决方案。页面加载时试试这个。
history.pushState("", document.title, window.location.pathname);
来自https://developer.mozilla.org/en/DOM/window.location:
例子
每当修改位置对象的属性时,将使用 URL 加载文档,就像使用修改后的 URL 调用 window.location.assign() 一样。
我认为这个问题解决了你想要使用 jQuery 的问题:
其他相关问题:
更改浏览器中的 URL 而不使用 JavaScript 加载新页面
如果我理解正确,
<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,而不会通过单击锚点添加散列。
我们可以通过在 click 函数中返回 false 来删除/逃避附加哈希。
<script>
$('#add_user').click(function(){
//your custom function code here..
return false;
});
</script>
<a id="add_user" href="#">Add Card</a>
您会发现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
});
});