JavaScript location对象用法详解

BOM(浏览器对象模型)中最有用的对象之一就是location,它是window对象和document对象的属性。location对象表示载入窗口的URL,此外,它还可以解析URL:

 
 
  1. <script type="text/javascript">  
  2.     document.write(  
  3.         "hash:"+location.hash+"<br>"+  
  4.         "host:"+location.host+"<br>"+  
  5.         "hostname:"+location.hostname+"<br>"+  
  6.         "href:"+location.href+"<br>"+  
  7.         "pathname:"+location.pathname+"<br>"+  
  8.         "port:"+location.port+"<br>"+  
  9.         "protocol:"+location.protocol+"<br>"+  
  10.         "search:"+location.search  
  11.     );  
  12. </script> 

下面就是在当前页面执行上述代码的结果,请参考:

hash:
host:www.sunchis.com
hostname:www.sunchis.com
href:http://www.sunchis.com/html/js/jsbasic/2010/0319/89.html
pathname:/html/js/jsbasic/2010/0319/89.html
port:
protocol:http:
search:

location.href是最常用的属性,用于获取或设置窗口的URL,改变该属性,就可以跳转到新的页面:

 
 
  1. <script type="text/javascript">  
  2.     location.href = "http://www.sunchis.com";  
  3. </script> 

上面代码的作用是:打开页面后将会跳转到http://www.sunchis.com的页面。

assign()方法也可实现上述操作:

 
 
  1. <script type="text/javascript">  
  2.     location.assign("http://www.sunchis.com");  
  3. </script> 

如果不想让包含脚本的页面能从浏览器的历史记录中访问,replace()方法可以做到这一点。replace()方法所做的操作与assign()方法一样,但它多了一步操作,即从浏览器的历史记录中删除了包含脚本的页面,这样就不能通过浏览器的后退按钮和前进按钮来访问它了,assign()方法却可以通过后退按钮来访问上个页面。你可以自己测试一下这段关于replace()方法的代码:

 
 
  1. <html> 
  2.     <head> 
  3.         <title>不能访问此页面的历史页面</title> 
  4.     </head> 
  5.     <body> 
  6.         <p>测试一下效果,请等待一秒钟……</p> 
  7.         <p>然后点击浏览器的“后退按钮”,你会发现什么?</p> 
  8.         <script type="text/javascript"> 
  9.             setTimeout(function(){  
  10.                 location.replace("http://www.sunchis.com");  
  11.             },1000);  
  12.         </script> 
  13.     </body> 
  14. </html> 

location对象还有个reload()方法,可以重新载入当前页面。reload()方法有两种模式,即从浏览器的缓存中重载,或从服务器端重载。究竟采用哪种模式由该方法的参数决定。

  • false:从缓存中重新载入页面;
  • true:从服务器重新载入页面;
  • 无参数:从缓存中载入页面,如果参数省略,默认值为false。
 
 
  1. location.reload(true);    //从服务器重载当前页面  
  2. location.reload(false);   //从浏览器缓存中重载当前页面  
  3. location.reload();        //从浏览器缓存中重载当前页面 

注意:

  • 在reload()方法执行后,再其后面的代码可能被执行,也可能不被执行,这由网络延迟和系统资源因素决定。因此,最好把reload()的调用放在代码的最后一行。
  • 文章的一开始就提到location是window对象和document对象的属性,因此,window.location和document.location是等价的,可以交互使用。
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值