我想通过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
答案 0 :(得分:1)
正如我在评论中已经提到的那样,忘了
location.hash
并使用
location.href.replace(/^[^#]+/,'');
代替。
它将为您节省大量的麻烦。