1,介绍
- location是最有用的BOM对象之一,它提供了当前窗口中加载的文档有关的信息,还提供了一些导航功能。
- 它既是window对象的属性,也是document对象的属性。
- 它将URL解析为独立的片段,让开发人员可以通过不同的属性访问这些片段,下表列出了location对象的所有属性。
2,查询字符串参数
其中通过上表的属性访问URL包含的查询字符串的属性并不方便。可以像下面这样创建一个函数,用以解析查询字符串,然后返回包含所有参数的一个对象:
function getQueryStringArgs(){ // 取得查询字符串并去掉开头的问号 var qs =(location.search.length > 0 ? location.search.substring(1):"") // 保存数据的对象 args = {}, items = qs.length?qs.split("&"):[], item=null, name=null, value=null, //在for循环中使用 i=0, len= items.length; for(i0;i<len;i++){ item = items[i].split("="); name = decodeURIComponent(item[0]); value = decodeURIComponent(item[1]); if(name.length){ args[name]=value; } } return args; }
3,位置操作
使用location对象可以通过很多方式来改变浏览器的位置
assign()
location.assign("http://www.wrox.com");
下面两行与现实调用assign()方法效果完全一样
window.location = "http://www.wrox.com"; location.href = "http://www.wrox.com";
- 修改location的属性(hash除外),页面都会以新URL重新加载。
- replace()
调用replace()方法后,用户不能回到前一个页面,不会在历史记录中生成新纪录。 reload()
- 使用示例
location.reload() //重新加载(有可能从缓存中加载) location.reload(true); //重新加载(从服务器加载)
- 位于reload()调用之后的代码可能会也可能不会执行,取决于网络延迟和系统资源等因素