《JavaScript高级程序设计 (第3版)》学习笔记31:chapter_8 - 2 location对象

让学习“上瘾”,成为更好的自己!!!

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>location对象</title>
    <script>
        /*
        location对象:提供了与当前窗口中加载的文档有关的信息,也提供了一下导航功能,并将URL解析为独立的片段,让开发人员可以通过不同的属性访问这些片段
        location对象既是window对象的属性,也是document对象的属性
        属性: hash: 返回“#”号跟零或多个字符
              host: hostname+port
              hostname:
              href:返回当前加载页面的完整URL
              pathname:返回URL目录和文件名
              port
              protocol
              search: 返回URL的查询字符串,这个字符以问号开头


          1,查询字符串参数




          2,位置操作
            
            
            
            
            
            */

        // 1,查询字符串参数(基于location.search)
        function getQueryStringArgs() {
            var qs = (location.search > 0 ? location.search.substring(1) : ''),

            // 保存数据的对象
            args = {};
            // 取得每一项
            var items = qs.length ? qs.split('&') : [],
                item = null,
                name = null,
                value = null;

            // 在循环中使用
            
            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){
                    arg[name] = value;
                }


            }

            return args;
        }


        // 2,位置操作
        // 使用location对象来改变浏览器的位置
        // (1) assign(): 接收一个URL 【最常用的方法】

        // location.assign('https://www.baidu.com');   
        // 立即打开新的URL并在浏览器的历史记录中生成一条记录 

        // 将location.href and window.location设置为URL,也会调用assign()方法
        // // 效果一致
        // location.href = 'https://www.baidu.com';  // 改变浏览器位置的方法中最常用的就是设置location.href属性
        // window.location = 'https://www.baidu.com';

        // (2) 修改location对象的其他属性也可以改变当前加载的页面
        // 将hash,search,hostname,pathname,port属性设置为新值来改变URL
        // 每次修改location的属性(hash除外),页面都会以新的URL重新加载

        // (3) replace()方法:禁用上边通过“后退”导航到上一个页面的行为
        // replace()也会导致浏览器的位置改变,但是不会在历史记录中生成新纪录!!
            // location.replace('https://www.taobao.com');


        // (4)  reload():重新加载当前显示的页面
        //    a, 没有参数时,页面会以最有效的方法重新加载,页面从浏览器的缓存中重新加载
        //    b, 若要强制地从服务器重新加载,则需要传递参数true

            location.reload(true);  // 从服务器重新加载

        // 【注意】位于reload()调用后的代码可能会也可能不会执行,因此,reload()最好代码放在程序最后一行!!!




    </script>
</head>

<body>

</body>

</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值