location对象

location对象

5.1 什么是location 对象

Window 对象给我们提供了一个 location属性 用于 获取或设置窗体的URL,并且可以用于 解析URL。因为这个属性返回的是一个对象,所以我们将这个属性也称为 location对象。
在这里插入图片描述

案例:5秒之后跳转页面

1.点击按钮跳转

 btn.addEventListener('click', function() {  
            // console.log(location.href);
            location.href = 'http://www.itcast.cn';
        })
  1. 5秒后自动跳转
var timer = 5;
countDown(); //我们先调用一次这个函数,防止第一次刷新页面空白
       
        setInterval(countDown, 1000); //每隔一秒,调用一次 重复
        
        function countDown() {
            if (timer == 0) {
                location.href = 'http://www.itcast.cn';
            } else {
                div.innerHTML = '您将在' + timer + '秒钟之后跳转首页';
                timer--;
            }
        }

5.2 获取URL参数数据

主要练习数据在不同页面中的传递。
login部分:

<body>
    <form action="index(1).html">
        用户名:<input type="text" name="uname">
        <input type="submit" value="登录">
    </form>
</body>

index部分:

<script>
        console.log(location.search); //?unmae=andy   获取参数
        // 1.先去掉? substr('起始的位置','截取几个字符');
        var params = location.search.substr(1); //起始位置为1  截取字符没写等于默认从1往后全部截取   uname=andy
        console.log(params);
        // 2.利用=把字符串分隔为数组  split('=');
        var arr = params.split('=');
        console.log(arr); //['uname','andy']
        var div = document.querySelector('div');
        // 3.把数据写入div中
        div.innerHTML = arr[1] + '欢迎您'; //arr[1] 表示数组里面第1个字符 是andy 获取过来
    </script>

5.3 location常见的方法:

在这里插入图片描述

<script>
        var btn = document.querySelector('button');
        btn.addEventListener('click', function() {
            // 记录浏览历史,所以可以实现后退功能
            location.assign('http://www.itcast.cn');
            // 不记录浏览历史,所以不可以实现后退功能
            location.replace('http://www.itcast.cn');
            location.reload(true); //页面加载 相当于刷新/F5 如果参数为true 为强制刷新
        })
    </script>

5.4 navigator对象

使用下面代码,判断用户用PC端打开 或者 用移动端打开 而切换。
在这里插入图片描述

<script>
        if ((navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i))) {
            window.location.href = "../H5/index.html"; //手机
        }
    </script>

5.5 history对象

index部分:

<body>
    <a href="list.html">点击我去往列表页</a>
    <button>前进</button>
    <script>
        var btn = document.querySelector('button');
        btn.addEventListener('click', function() {
            history.forward(); //前进
            history.go(1); //前进 go需要加参数
        })
    </script>
</body>

list部分:

<body>
    <a href="index.html">点击我去往首页</a>
    <button>后退</button>
    <script>
        var btn = document.querySelector('button');
        btn.addEventListener('click', function() {
            // history.back();
            history.go(-1); //后退
        })
    </script>
</body>
### JavaScriptLocation 对象与 Window 对象的关系 在 JavaScript 中,`location` 对象是 `window` 对象的一个属性。这意味着可以通过 `window.location` 访问 `location` 对象[^1]。`location` 对象包含了当前窗口或框架中加载的文档的 URL 信息,并提供了一系列方法用于操作这些信息。 #### 联系 - **隶属关系**:`location` 对象是 `window` 对象的一部分,因此可以通过 `window.location` 来访问它。实际上,即使省略 `window` 前缀,直接使用 `location`,也会默认指向 `window.location`[^2]。 - **功能协同**:`window` 对象负责管理浏览器窗口的整体行为,而 `location` 对象则专注于 URL 的管理和导航。例如,通过 `window.location.href` 可以获取当前页面的完整 URL,或者通过 `window.location.assign()` 方法可以跳转到新的页面。 #### 区别 - **对象层次**:`window` 是一个全局对象,代表了浏览器窗口或框架。它包含了许多其他对象、属性和方法,如 `document`、`navigator` 和 `history` 等。而 `location` 仅是 `window` 的一个属性,专门用于处理 URL 相关的信息。 - **功能范围**:`window` 对象的功能范围更广,涵盖了整个浏览器环境的操作,例如弹出提示框(`alert`)、定时器(`setTimeout`)等。而 `location` 对象的功能则集中在 URL 操作上,包括读取和修改 URL 的各个部分(如协议、主机名、端口、路径等)以及执行页面跳转。 #### 示例代码 以下代码展示了如何使用 `window.location` 进行页面跳转和获取 URL 参数: ```javascript // 页面跳转 window.location.href = "https://www.example.com"; // 获取 URL 参数 const params = new URLSearchParams(window.location.search); for (const [key, value] of params.entries()) { console.log(`${key}: ${value}`); } ``` 上述代码中,`window.location.href` 用于设置新页面的 URL,而 `window.location.search` 则用于获取当前 URL 的查询字符串部分,并通过 `URLSearchParams` 解析参数[^2]。 ### 总结 `location` 对象是 `window` 对象的一个属性,专注于 URL 的操作。虽然它们在功能上有交集,但 `window` 对象的功能范围更广,涵盖了整个浏览器环境的操作,而 `location` 对象则专注于 URL 的读取和修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值