在 Safari 3 中将 window.location.hash 设置为 null+导致它被设置为#

发布于 2024-08-03 16:33:53 字数 371 浏览 2 评论 0原文

在 Safari 3+ 中将 window.location.hash 设置为 null 会导致其设置为 #,例如

window.location.hash = '#foo' => #foo

但是,

window.location.hash = null =>; #

如果将其设置为空字符串而不是 null,也会发生同样的情况。该行为肯定会出现在 Safari 3 + 4 中,但不会出现在 FF 3 或 4 中。

有解决方法吗?诚然,这更多的是出于审美目的,但我仍然希望在所有浏览器上保持一致的行为。

Setting window.location.hash to null in Safari 3+ causes it to be set to #, e.g.

window.location.hash = '#foo' => #foo

But,

window.location.hash = null => #

Same occurs if you set it to an empty string instead of null. Behavior definitely occurs in Safari 3 + 4, and does not occur in FF 3 or 4.

Any workarounds for this? Granted, it is more of an aesthetically-motivated thing, but I'd still like consistent behavior across all browsers.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

沒落の蓅哖 2024-08-10 16:33:53

在 Safari 4(不知道 3)中,这将使 # 消失,并且页面将不会重新加载。

window.location.hash = 'foo';
window.history.go(-1);

然而,它显然会扰乱浏览器历史记录。如果他们点击前进,则会转到 http://whatever.com/#foo

In Safari 4 (don't know about 3) this will make the # disappear, and the page will not reload.

window.location.hash = 'foo';
window.history.go(-1);

However, it will obviously mess with the browser history. If they click forward it will take them to http://whatever.com/#foo.

绻影浮沉 2024-08-10 16:33:53

将 hash 设置为空字符串,而不是 null。 Null 不是哈希属性的有效值(始终是字符串)。在 Safari 3.2.1/Win 中适用于我。 (虽然在 Opera 10 中出于某种原因不是这样……但是谁在乎呢?URL 末尾有一个空白哈希部分是一件坏事吗?)

Set hash to an empty string, not null. Null is not a valid value for the hash property (which is always a string). Works for me in Safari 3.2.1/Win. (Though not, for some reason in Opera 10... but then who cares? Is having a blank hash part on the end of the URL such a bad thing?)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文