使用 JavaScript 在不刷新页面的情况下从 URL 中删除哈希
使用 URL 时,通常需要删除哈希片段 (#something )而不导致页面刷新。这可以使用 HTML5 History API 来实现,该 API 允许操作位置栏。
一种解决方案是:
window.location.hash = '';
但是,这只会删除哈希的内容,留下 # URL 中的符号。
更全面的解决方案:
function removeHash() { history.pushState("", document.title, window.location.pathname + window.location.search); }
此方法适用于 Chrome, Firefox、Safari、Opera 和 IE 10。对于不支持的浏览器,可以使用优雅的降级脚本:
function removeHash() { var scrollV, scrollH, loc = window.location; if ("pushState" in history) history.pushState("", document.title, loc.pathname + loc.search); else { // Prevent scrolling by storing current scroll offset scrollV = document.body.scrollTop; scrollH = document.body.scrollLeft; loc.hash = ""; // Restore scroll offset to avoid flickering document.body.scrollTop = scrollV; document.body.scrollLeft = scrollH; } }
通过利用此技术,您可以有效地从 URL 中删除哈希,而无需无论浏览器是否支持,都会导致页面刷新。
以上是如何使用 JavaScript 删除 URL 哈希而不刷新页面?的详细内容。更多信息请关注PHP中文网其他相关文章!