运行 document.location.hash = ""因为 DOM 中的第一件事不会清理 URL
document.location.hash="" 将 URL 中的哈希设置为 #。但是当我将其作为 DOM 中的第一件事运行时,它在 Firefox 中不起作用(至少在 Firefox 5.0.1 中)。有什么想法吗?
尝试在 Firefox 中访问 http://www.sebastianrazola.com/test.html#thisshouldberemoved和另一个浏览器看看我的意思。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Hash test</title>
<script type="text/javascript">
document.location.hash="";
</script>
</head>
<body>
<p>The hash won't be set to <b>#</b> in Firefox. (At least in Firefox 5.0.1)</p>
</body>
</html>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是一个错误。 https://bugzilla.mozilla.org/show_bug.cgi?id=675587准确地说(我相信您已提交)。
如果您想暂时解决此问题,请将
document.body.offsetWidth
添加到脚本中的location.hash
设置之前。这将创建可滚动布局对象,该对象的不存在会导致错误,从而阻止位置在没有错误修复的情况下发生更改。It's a bug. https://bugzilla.mozilla.org/show_bug.cgi?id=675587 to be exact (which I believe you filed).
If you want to work around this for the moment, add
document.body.offsetWidth
to your script before thelocation.hash
set. That will create the scrollable layout object whose non-existence causes the error that prevents the location from changing without the bugfix.