0

我正在尝试通过仅在客户端 javascript 上使用的 URL 传递变量。将它们传递为:

?var1=val1&var2=val2

对比

#var1=val1&var2=val2

?

4

5 回答 5

1

?查询部分)被发送到服务器,#(散列部分)没有。

当使用哈希部分时,它不会重新加载页面。当使用查询部分时,它将重新加载页面。

于 2012-04-30T19:50:24.550 回答
1

第一个是搜索,第二个是哈希。

搜索被发送到服务器,但哈希不是。

hashchange 有一个事件,但搜索没有。

https://developer.mozilla.org/en/DOM/window.location在此处输入链接描述

于 2012-04-30T19:51:51.150 回答
0

第一个?var1=val1&var2=val2是查询字符串,让浏览器发出请求。

第二个是一个片段,不做一个新的请求。

于 2012-04-30T19:50:24.830 回答
0

“#”通常是在页面上点击的链接,用作页面锚点。

“?” 是通过客户端/服务器传递的参数。

于 2012-04-30T19:50:26.227 回答
0

服务器永远不会看到哈希标签变量,因此无法在服务器上复制状态(因此,搜索机器人不会得到它)

解析标准会稍微容易一些,?name=value因为location.search它为您提供了 URL 的那部分

更改?将导致页面刷新而设置#不会

于 2012-04-30T19:50:34.360 回答