JavaScript浏览器对象模型(BOM)之location对象

一、概述:

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

    事实上,location 对象是 window 对象的属性,也是 document 对象的属性;所以 window.location 和 document.location 等效。
    

    

二、属性:

alert(location); //获取当前的 URL
  location.hash = '#1'; //设置#后的字符串,并跳转
    alert(location.hash); //获取#后的字符串
    
    location.port = 8888; //设置端口号,并跳转
    alert(location.port); //获取当前端口号,
    
    location.hostname = 'Lee'; //设置主机名,并跳转
    alert(location.hostname); //获取当前主机名,
    
    location.pathname = 'Lee'; //设置当前路径,并跳转
    alert(location.pathname); //获取当前路径,
    
    location.protocal = 'ftp:'; //设置协议,没有跳转
    alert(location.protocol); //获取当前协议
    
    location.search = '?id=5'; //设置?后的字符串,并跳转
    alert(location.search); //获取?后的字符串
location.href = 'http://www.baidu.com'; //设置跳转的 URL,并跳转
alert(location.href); //获取当前的 URL

    在 Web 开发中,我们经常需要获取诸如?id=5&search=ok 这种类型的 URL 的键值对,那么通过 location,我们可以写一个函数,来一一获取。

function getArgs() {
 
        var args = [];            //创建一个存放键值对的数组
    
        var qs = location.search.length > 0 ? location.search.substring(1):'';        //去除?号
    
        var item = null, name = null, value = null;           
        var items = qs.split('&'); //按&字符串拆分数组
        //遍历
        for (var i = 0; i < items.length; i++) {
            item = items[i].split('=');
            name = item[0];
            value = item[1];
            args[name] = value;            //把键值对存放到数组中去
        }
        return args;
    }
    var args = getArgs();
    alert(args['id']);
    alert(args['search']);    

三、方法

    location.assign('http://www.baidu.com'); //跳转到指定的 URL
    location.reload(); //最有效的重新加载,有可能从缓存加载
    location.reload(true); //强制加载,从服务器源头重新加载
    location.replace('http://www.baidu.com'); //可以避免产生跳转前的历史记录,即不产生任何历史记录的跳转
原文地址:https://www.cnblogs.com/LO-ME/p/3602893.html