location对象

 

location对象

BOM中最有用的对象之一是location对象,它是window对象和document对象的属性(对此没有什么标准,导致了一些混乱)location对象表示载入窗口的URL,此外,它还可以解析URL

q  hash如果URL包含#,该方法将返回该符号之后的内容(例如,http://www.some-
where.com/index#selection1
hash等于"#selection1"

q  host服务器的名字(如www.wrox.com

q  hostname通常等于host,有时会省略前面的www

q  href当前载入的页面的完整URL

q  pathnameURL中主机名后的部分例如,http://www.somewhere.com/pictures/
index.htm
pathname"/pictures/index.htm"

q  portURL中声明的请求的端口默认情况下,大多数URL没有端口信息,所以该属性通常是空白的像http://www.somewhere.com:8080/index.htm这样的URLport属性等于8080

q  protocolURL中使用的协议,即双斜杠(//)之前的部分例如,http://www.wrox.com中的protocol属性等于http:ftp://www.wrox.comprotocol属性等于ftp:

q  search执行GET请求的URL中的问号(?)后的部分,又称为查询字符串例如,http://www.somewhere.com/search.htm?term=javascript中的search属性等于
?term=javascript

location.href是最常用的属性,用于获取或设置窗口的URL(在这一点上,它类似于document.URL属性)改变该属性的值,就可导航到新页面:

采用这种方式导航,新地址将被加到浏览器的历史栈中,放在前一个页面后,意味着Back按钮会导航到调用了该属性的页面

assign()方法实现的是同样的操作:

这两种方法都可以采用,不过大多数开发者选用location.href属性,因为它更精确地表达了代码的意图

如果不想让包含脚本的页面能从浏览器历史中访问,可使用replace()方法该方法所作的操作与assign()方法一样,但它多了一步操作,即从浏览器历史中删除包含脚本的页面,这样就不能通过浏览器的BackForward按钮访问它了你可以自己试试看:

把这个页面载入浏览器中,等它导航到新页面后,再点击Back按钮

location对象还有个reload()方法,可重新载入当前页面reload()方法有两种模式,即从浏览器缓存中重载,或从服务器端重载究竟采用哪种模式由该方法的参数值决定,如果是false,则从缓存中载入,如果是true,则从服务器端载入(如果省略参数,默认值为false

因此,要从服务器端重载当前页面,可以使用下面的代码:

要从缓存重载当前页面,可以采用下面两行代码中的任意一行:

reload()方法调用后的代码可能被执行,也可能不被执行,这由网络延迟和系统资源等因素决定因此,最好把reload()调用放在最后一行

location对象的最后一个方法是toString(),它仅返回location.href的值因此,下面两行代码是等价的:

本节采用示例介绍了location对象记住,location对象是window对象和document对象的属性,所以window.locationdocument.location互相等价,可以交换使用



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值