常常使用window.location。它的结构总是记不住。简单梳理下。方便以后查询。
演示样例
URL:http://b.a.com:88/index.php?
name=kang&when=2011#first
属性 | 含义 | 值 |
---|---|---|
protocol: | 协议 | "http:" |
hostname: | server的名字 | "b.a.com" |
port: | port | "88" |
pathname: | URL中主机名后的部分 | "/index.php" |
search: |
"? "后的部分,又称为查询字符串 |
"?name=kang&when=2011" |
hash: | 返回"#"之后的内容 | "#first" |
host: | 等于hostname + port | "b.a.com:88" |
href: | 当前页面的完整URL | "http://www.a.com:88/index.php?name=kang&when=2011#first" |
window.location和document.location互相等价的,能够交换使用
location的8个属性都是可读写的。可是仅仅有href与hash的写才有意义。比如改变location.href会又一次定位到一个URL,而改动location.hash会跳到当前页面中的anchor(<a id="name">或者<div id="id">等)名字的标记(假设有)。并且页面不会被又一次载入
注意
URL:http://b.a.com:88/index.php?
name=kang&how=#when=2011#first
search: | "?name=kang&how=" |
第一个"? "之后 |
hash: | "#when=2011#first" | 第一个"#"之后的内容 |
方法
- location.assign( url )
- location.assign('http://www.baidu.com'); 等同于 window.location = 'http://www.baidu.com'
这样的方式会讲新地址放到浏览器历史栈中,意味着转到新页面后“后退button”仍能够回到该页面。 - location.replace( url )
- 与assign方法一样,但会从浏览器历史栈中删除本页面,也就是说跳转到新页面后“后退button”不能回到该页面。眼下IE、Chrome仅仅是简单的跳转,仅仅有Firefox会删除本页面的历史记录。
- location.reload( force )
- 又一次加载当前页面。force为true时从server端重载;false则从浏览器缓存中重载,默认值false。
版权声明:本文博主原创文章,博客,未经同意不得转载。