URL片段中的多个参数

23

是否有一种标准格式,可以允许在URI片段中指定多个参数?(即井号#后面的部分,而不是查询字符串。)

最相关的信息可能是这个问题:Multiple fragment identifiers correct in URL?。片段的允许字符也可以在那个问题中找到。

比如说,使用分号来分隔多个参数是否可行:

http://example.net/page.html?q=1#param1=foo;param2=bar

我需要注意哪些无意识的行为?如果文档中没有值为param1的ID,会发生什么?

在本问题中,仅考虑HTML资源的URI。

1个回答

18

我认为你应该阅读这篇文章:http://en.wikipedia.org/wiki/Fragment_identifier#Examples

因此,多个参数的事实标准格式应该是#param1=value1&param2=value2。你可以看到这种方式被Media Fragments URI 1.0和PDF文档所使用。虽然对于HTML资源并没有标准规定,但你可以在JavaScript中按照任意方式解析片段。但我建议使用与查询字符串格式类似的格式,因为这看起来更自然。如果浏览器找不到任何ID/名称等于你的哈希片段的元素,则默认导航到文档开头。

此外,浏览器将把完整的哈希片段视为可能的ID/名称。因此,它们将查找ID/名称等于param1=value1&param2=value2而不仅仅是param1


2
此外,如果您有兴趣让您的AJAX应用程序可以被搜索引擎爬取,这里有一份来自Google的指南,介绍如何使用哈希片段#!。https://developers.google.com/webmasters/ajax-crawling/docs/getting-started?csw=1 - lagivan
谢谢。现在这个已经被弃用了 https://webmasters.googleblog.com/2015/10/deprecating-our-ajax-crawling-scheme.html - Nemo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接