2.location 对象

2016-09-19  本文已影响0人  唐唐_sugar

location对象是一个很特别的对象:既是window对象的属性,又是元素document对象的属性。即:window.location === document.location

location对象的所有属性:

1. 查询字符串参数

location.search没有办法逐个访问其中的每个查询字符串参数。故可以创建这样的函数,以解析查询字符串,然后返回包含所有参数的一个对象

function getQueryStringArgs(){
    // 假设url为 https://www.google.co.jp/?hl=zh-cn&gws_rd=cr&ei=MFDjV73sHYHa0ASqnLvoAw#hl=zh-cn&q=2016%E5%B9%B4github%E4%B8%8A%E5%8D%81%E5%A4%A7+%E5%89%8D%E7%AB%AF
    // 取得查询字符串并去掉开头的问号 —— location.search得到的是url问号后的字符串
    var qs = (location.search.length > 0 ? location.search.substring(1) : ""),
        args = {},  //保存数据的对象
        items = qs.length ? qs.split("&") : [], //取得每一项
        item = null,
        name = null,
        value = null,
        i = 0,      //在for循环中使用
        len = items.length;
    //逐个将每一项添加到args对象中
    for (i = 0; i < len; i++) {
        item = items[i].split("=");
        name = decodeURIComponent(item[0]);
        value = decodeURIComponent(item[1]);
        if (name.length) {
            args[name] = value;
        }     
    }
    return args;
}

2.位置操作

使用location对象可以通过很多方式来改变浏览器的位置。最常用方式:使用assign()方法并为其传递一个URL

location.assign("http://www.baidu.com");

在改变浏览器位置的方法中,最常用的是设置location.href属性。此外,修改location对象的其他属性(hash、search、jostname、pathname、port)也可改变当前加载的页面。

location.reload();  //页面会以最有效的方式重新加载(有可能从缓存中重新加载—)
location.reload(true)   //强制从服务器重新加载
上一篇 下一篇

猜你喜欢

热点阅读