日期:2014-05-16 浏览次数:20442 次
location对象既是window对象的属性,又是document对象的属性。它表示当前载入窗口的URL,此外,它还可以解析URL:
解析项目 | 解释 | 举例 |
hash | 若URL包含#,该方法将返回#之后的内容 | http://www.a.com/index#selection1的hash就是#selection1 |
host | 服务器名 | www.wrox.com |
hostname | 通常等于host,有时省略www | |
href | 当前载入页面的url | |
pathname | URL中主机后面的部分 | http://a.com/pics/index.html的pathname是/pics/index.html |
port | 请求端口 |
默认情况下,大多数都没有端口信息,因此一般该属性为空白。 http://www.a.com:8080的port为8080 |
protocol | 协议 | http、ftp等 |
search | 执行GET请求的?之后的部分,也就是查询字符串 | ?username=aaa |
?
location.href可以用来获取或者设置窗口的URL,与document.URL类似。此外还可以使用location.assign()方法。
如果不想让包含脚本的页面能从浏览器历史中被访问,那么可以使用location.replace()方法。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd" > <html lang="en"> <head> <title><!-- Insert your title here --></title> </head> <body> <script type="text/javascript"> setTimeout(function(){ location.replace("http://www.wrox.com"); },1000); </script> </body> </html>
?上面这段代码,当页面转到www.wrox.com之后,你再点击后退按钮是无效的。也就是说浏览器历史中已经没有转向前的那个页面了。这一点需要注意。
? location对象还有一个reload()。这个方法接受一个布尔值。false则表示从缓存中重新加载,true则表示从服务器重新加载。默认为false。
?location还有一个toString()方法,该方法返回location的href属性
? 最后再说一次,window.location 和 document.location是等价的,可以互相使用
?
?
参考书:
《JavaScript高级编程》Nicolas C. Zakas著, 曹力 张欣 等译。