URL哈希格式,什么是允许的,什么不是?

时间:2011-05-03 09:13:37

标签: html url browser

我在我的富Web应用程序中使用基于哈希的导航。我还发现我需要创建指向单个资源实例的永久链接,但由于我不能使页面刷新,并且主页面从单个路径'/'加载,我不能使用 real 网址。相反,我想到使用哈希。让我举个例子,因为我知道上面的解释很糟糕。

所以,我没有http://example.com/path/to/resource/1,而是http://example.com/#path/to/resource/1

这似乎工作正常,浏览器认为'#path / to / resource / 1'是一个哈希(斜杠允许,我想),但我想知道URL哈希中允许哪些字符。是否有规范或RFC我可以阅读以找出浏览器的哈希标准行为?

编辑:好的,我太傻了。实际上没有检查斜杠是否适用于所有浏览器。 Chrome显然不喜欢它们。仅适用于FF。

3 个答案:

答案 0 :(得分:6)

请注意:http://www.w3.org/Addressing/rfc1630.txthttp://www.w3.org/Addressing/URL/4_2_Fragments.html

基本上,您可以使用任何可以在URL中编码的内容。

注意:可能存在浏览器不一致。如果你害怕它们,你可能会使用序列化机制,比如将字符串转换为十六进制或其他东西(虽然会长两倍),或者使用某种类型的id。

答案 1 :(得分:2)

This document应该有所帮助。允许斜杠,但词汇分析可能因浏览器而异。

答案 2 :(得分:1)

我认为您可能会觉得有用:RFC3986

如果您使用PHP生成页面路径,您还可以urlencode()生成一个valide URL。