location 对象

作者: wanpan__ | 来源:发表于2017-09-22 19:34 被阅读0次

    location是最有用的BOM对象之一,它提供了与当前窗口中加载的文档有关的信息,还提供了一些导航功能

    事实上,location对象是很特别的一个对象,因为它既是window对象的属性,也是document对象的属性;换句话说,window.location和window.location引用的同一个对象。location对象的用处不止表现在它保存着当前文档的信息,还表现在它将URL解析为独立的片段,让开发人员可以通过不同的属性访问这些片段

    下表列出了location对象的所有属性(注:省略了每个属性前面的location前缀)

    属性名 例子 说明
    hash "#contents" 返回URL中的hash(#号后跟零或多个字符),如果URL中不包含散列,则返回空字符串
    host "www.wrox.com:80" 返回服务器名称和端口号(如果有)
    hostname "www.wrox.com" 返回不带端口号的服务器名称
    href "http:/www.wrox.com" 返回当前加载页面的完整URL。而location对象的toString()方法也返回这个值
    pthname "/wiley/" 返回URL中的目录和(或)文件名
    port "8080" 返回URL中指定的端口号。如果URL中不包含端口号,则这个属性返回空字符串
    protocol "?q=javascript" 返回URL的查询字符串。这个字符串以问号开头

    查询字符串参数
    虽然通过上面的属性可以访问到location对象的大多数信息,但其中访问URL包含的查询字符串的属性并不方便。尽管location.search返回从问号到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 (var 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
    }
            
    
    getQueryStringArgs()
    

    假如地址栏中的地址为:

    https://m.120xinmao.com/share?tid=5&did=461
    

    得到的结果为:

    {tid: "5", did: "461"}
    

    相关文章

      网友评论

        本文标题:location 对象

        本文链接:https://www.haomeiwen.com/subject/ywaosxtx.html