Pra*_*dal 4 javascript url hash query-string
一些在线文章说,URL 中的querystring和没有标准hash,但我们正在关注继续发生的事情。所以,我的问题是在同一个 URL 中同时使用查询字符串和哈希值的更好方法是什么。
我认为的问题是,如果哈希跟随查询字符串,它可以成为某些查询字符串数据的值,如果查询字符串跟随哈希,则整个查询字符串可能成为哈希。那么,我应该遵循什么顺序?
Pra*_*dal 10
这是我在 JavaScript 中尝试过的:
window.location="alpha#abc?def=34";
console.log(window.location);
Run Code Online (Sandbox Code Playgroud)
结果是:
Location {
hash: "#abc?def=34",
search: "",
...otherData
}
Run Code Online (Sandbox Code Playgroud)
进而:
window.location="alpha?abc=34#def";
console.log(window.location);
Run Code Online (Sandbox Code Playgroud)
结果是:
Location {
hash: "#def",
search: "?abc=34",
...otherData
}
Run Code Online (Sandbox Code Playgroud)
显然,JavaScript 不区分 # 符号之后的任何内容,而哈希之前的查询字符串则可以正常工作。
所以,我们应该先使用querystring,然后使用hash。
一些网上文章说,URL中的querystring和hash没有标准
要么他们错了,要么你误解了他们。
查询字符串必须出现在片段标识符(您称之为哈希)之前。
的说明书示出了URI的格式:
Run Code Online (Sandbox Code Playgroud)URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]
它清楚地显示了查询后出现的片段。
如果哈希跟随查询字符串,它可以成为某些查询字符串数据的值
它不能。本#是一个特殊字符,表示该片段的开始。要在查询字符串数据中包含一个,它需要转义为%23.