location对象是Obejct的一个实例,包含以下 几个方法和属性
1window对象和Document对象的location属性是引用到Location对象
2.location对象的属性(都会进行转码)
属性 | 描述 |
hash | 从”#”号开始的url |
host | 主机名和当前url的端口号 |
hostname | 当前url的主机名 |
href | 完整的url |
pathname | 当前url的路径部分 |
port | 当前url的端口号 |
protocal | 当前url的协议 |
search | 从“?”开始的url(查询部分) |
3.location对象的方法
a.location.reload(true||false) 可选参数,默认为false,从客户端缓存里取当前页,true,则以get方式,从服务端取最新的页面,相当于客户端点击F5
b.location.replace(url)该方法通过指定url替换当前缓存在历史里(客户端)的项目,因此当使用replace方法之后,你不能通过“前进”和“后退”来访问已经被替换的url
在实际应用的时候,重新刷新页面的时候,我们通常使用: location.reload() 或者是 history.go(0) 来做。因为这种做法就像是客户端点F5刷新页面,所以页面的method="post"的时候,会出现“网页过期”的提示。那是因为Session的安全保护机制。可以想到: 当调用 location.reload() 方法的时候, aspx页面此时在服务端内存里已经存在, 因此必定是 IsPostback 的。如果有这种应用: 我们需要重新加载该页面,也就是说我们期望页面能够在服务端重新被创建, 我们期望是 Not IsPostback 的。这里,location.replace() 就可以完成此任务。被replace的页面每次都在服务端重新生成。你可以这么写: location.replace(location.href)
c.location.assign(url)设置当前文档的url,会产生浏览历史记录,相当于location.href= “ 指定值 " || location = ‘指定值 '
d.location.toString()把当前url转换成字符串
e.location=纯粹的片段标识符是相对URL的一种类型,它不会让浏览器载入新文档,但只会使它流动到文档的某个位置,#top标识符是个特殊的例子,如果文档中没有元素的ID是“top “,它会让浏览器跳到文档开始外
location = ‘#top’
f.location对象的URL分解属性是可写的,对它们重新赋值会改变URL的位置,并且导致浏览器载入一个新的文档(如果改变的是hash属性,则在当前文档中进行跳转)
location.search = “?page=” + ‘pagenum + 1); //载入下一个页面
4.提取url的搜索字符串的参数http://jsbin.com/asOSAJi/1/edit?js,console,output
(百度的字符串会报错,是因为是gbk引起的)