是否存在字符集限制或location.hash的自动转换奇怪?

时间:2011-09-22 23:42:49

标签: javascript url location

我想通过url哈希存储和检索数据。用户可以在页面上进行一些下拉设置,这些设置应该通过location.replace函数*写入网址。

为简单起见,它现在的工作原理如下:最初,用户在test.com。更改两个设置后,网址如下所示:http://test.com#fruit→banana#color→light blue

另一种几乎同样简单的方法是http://test.com#fruit=banana, color=light blue。设置和选项包含的唯一字符是(作为正则表达式)[A-Za-z &]

据我所知,这很好用,虽然firefox url-escape复制的一切,而chrome却没有。在粘贴并按下回车后,url栏显示未转义的哈希值,每个javascript获取location.hash也会给出未转义的unicode字符串。

我的问题:我不知道有任何问题,不一致或其他怪癖吗?


*仅供参考:location.replace("#hash")就像人们期望的那样工作:D

1 个答案:

答案 0 :(得分:1)

正如我在评论中已经提到的那样,忘了

location.hash 

并使用

location.href.replace(/^[^#]+/,'');

代替。

它将为您节省大量的麻烦。