Location对象

窗口的location属性引用的是Location对象,它代表该窗口(或帧)中当前显示文档的URL。Location对象的href属性是一个字符串,它包含URL的完整文本。Location对象的toString( )方法返回href属性的值,因此,可以使用location代替location.href。

Location对象的search属性比较有趣。如果有的话,它包含的是问号以及问号后面的那部分URL,这部分通常是某种类型的查询字符串。一般说来,在URL中使用问号是一种在URL中嵌入参数的方法。虽然这些参数通常用于运行在服务器上的脚本,但是没有任何理由阻止使用JavaScript的页面使用他们。下面代码展示了一个通用的函数getArgs( )的定义,可以用这个函数将参数从URL的search属性中提取出来。

<script>
function getArgs(){
var args=new Object();
var query=location.search.substring(1);
var pairs=query.split("&");
for(var i=0;i<pairs.length;i++){
var pos=pairs[i].indexOf('=');
if(pos==-1) continue;
var argname=pairs[i].substring(0,pos);
var value=pairs[i].substring(pos+1);
value=decodeURIComponent(value);
args[argname]=value;
}
return args;
}
</script>
虽然一个窗口的location属性引用了一个Location对象,但还是可以给这个属性赋值一个字符串。当这么做的时候,浏览器把这个字符串解释为一个URL,并且试图用这个URL载入和显示文档。

Window对象没有一个方法可以让浏览器载入和显示一个新的页面,这有些让人惊讶。然而在过去,把一个URL赋给一个窗口的location属性也是得到支持的载入新页面的技术。Location对象确实还有两种实现这一相关目的的方法:

① reload( )方法会从web服务器上再次装入当前显示的页面。

② replace(url)方法会装载并显示指定的URL。

但是为给定的URL调用replace( )方法和把一个URL赋给窗口的location属性不同。当调用replace( )时,指定的URL就会替换浏览器历史列表中的当前URL,而不是在历史列表中创建一个新条目。因此,如果使用方法replace( )使一个新文档覆盖当前文档,BACK按钮就不能使用户返回最初文档。而通过将一个URL赋给窗口的location属性来装载新文档就可以做到这一点。对那些使用了帧并且显示多个临时页的网站来说,replace( )通常比较有用,这样临时页面不会存储在历史列表中,BACK按钮对用户就显得有用多了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值