location.search值为空?

window.location和document.location互相等价的,可以交换使用。
一个url链接中包含’#‘和不包含’#'有些返回结果是有区别的,如下:

属性 含义 http://abc.com:8080/test?a=1&b=2 http://abc.com:8080/#/test?a=1&b=2
href 当前页面的完整URL http://abc.com:8080/test?a=1&b=2 http://abc.com:8080/#/test?a=1&b=2
protocol 使用协议 http: http:
hostname 服务器的名字 abc.com abc.com
port 端口 8080 8080
host 等于hostname + port abc.com:8080 abc.com:8080
pathname URL中主机名后的部分 /test ‘’
search "?"后的部分,又称为查询字符串 a=1&b=2 ‘’
hash 返回"#"之后的内容 ‘’ #/test?a=1&b=2

从上表可以看出,hash返回的是第一个’#‘之后的内容,search返回的是第一个’?‘之后的内容,如果’?‘之前有’#’,直接使用search得不到url链接的参数。
举个栗子?:
URL:http://abc.com:8080/test?a=1&b=#c=222#log
search: “a=1&b=”
hash: “c=222#log” // hash返回的是第一个’#'之后的内容

search只能在取到’?‘后面和’#‘之前的内容,如果’#‘之前没有’?’,search取值为空

你可能感兴趣的:(JavaScript)