我在页面加载时使用网址#value触发自定义模式弹出窗口,如果用户关闭模式,我想清除该值。我知道我可以使用#value
删除location.hash = ''
。但这将离开#
。
是否有跨浏览器方式删除#value
以及以下网址中的#
?
e.g。 http://www.myweb.com/list.html#value
提前致谢!
答案 0 :(得分:1)
没有直接的方法。
至于Answer在顶部共享的 Pabel de Jesus Nuñez Landestoy 。目前的解决方法是编写一个小函数,
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 the page's current scroll offset
scrollV = document.body.scrollTop;
scrollH = document.body.scrollLeft;
loc.hash = "";
// Restore the scroll offset, should be flicker free
document.body.scrollTop = scrollV;
document.body.scrollLeft = scrollH;
}
}
原始答案是:Andy E