我正在尝试通过仅在客户端 javascript 上使用的 URL 传递变量。将它们传递为:
?var1=val1&var2=val2
对比
#var1=val1&var2=val2
?
我正在尝试通过仅在客户端 javascript 上使用的 URL 传递变量。将它们传递为:
?var1=val1&var2=val2
对比
#var1=val1&var2=val2
?
(?
查询部分)被发送到服务器,#
(散列部分)没有。
当使用哈希部分时,它不会重新加载页面。当使用查询部分时,它将重新加载页面。
第一个是搜索,第二个是哈希。
搜索被发送到服务器,但哈希不是。
hashchange 有一个事件,但搜索没有。
https://developer.mozilla.org/en/DOM/window.location在此处输入链接描述
第一个?var1=val1&var2=val2
是查询字符串,让浏览器发出请求。
第二个是一个片段,不做一个新的请求。
“#”通常是在页面上点击的链接,用作页面锚点。
“?” 是通过客户端/服务器传递的参数。
服务器永远不会看到哈希标签变量,因此无法在服务器上复制状态(因此,搜索机器人不会得到它)
解析标准会稍微容易一些,?name=value
因为location.search
它为您提供了 URL 的那部分
更改?
将导致页面刷新而设置#
不会