0
点赞
收藏
分享

微信扫一扫

JavaScript-筑基(二十四)URL、location对象

zhyuzh3d 2022-01-20 阅读 70

        首先了解一个名词。URL是统一资源定位符(Uniform Resource Locator)是互联网上标准资源的地址。互联网上的每个文件都有唯一的URL,它包含的信息指出文件的位置以及游览器应该怎么处理它。

protocol通信协议 常用的http,ftp,maito等
host主机名(域名)

port

端口号 可选,省略时使用方案的默认端口 如http的默认端口80
path路径,由零或多个‘/’符号隔开的字符串,一般用来表示表示主机的一个目录或文件地址
query参数 以键值对的形式,通过&符号分隔开

fragment

片段 #后面内容 常见链接 锚点

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

属性作用
location.href获取或者设置 整个URL
location.host返回主机(域名)
location.pathname返回路径
location.port返回端口号 如果未写返回 空字符串
location.search返回参数
location.hash返回片段 #后面内容 常见于链接、锚点

练习:五秒钟后跳转页面

 var btn = document.querySelector('button');
        var div = document.querySelector('div');
        var timer = 5;
        setInterval(function(){
            if(timer == 0) {
                location.href = 'https://www.baidu.com/';
            }
            else{
                div.innerHTML = '将在'+timer+'秒后跳转页面';
                timer--;
            }
        },1000)

案例:获取URL参数

  1. 第一个登陆页面,里面有提交表单,action提交到index.html页面
  2. 第二个页面,可以使用第一个页面的参数,这样就实现了一个数据不同页面之间的传递效果
  3. 第二个页面之所以可以使用第一个页面的数据,是利用了URL里面的location.search参数
  4. 在第二个页面中,需要把这个参数提取
  5. 然后把多余的?去掉,利用substr,用分隔符=号分割 键 和 值 split(‘=’)
//login,html页面 
<form action="index.html">
        用户名:<input type="text" name="uname">
        <input type="submit" value="登录">
    </form>

在输入点击登录后跳转到第二个页面

 ‘做出选择’用户进行提交登录的

//index.html页面 
<div></div>
     <script>
      // console.log(location.search); 输出 ?uname=andy

        // 1.先去掉?  substr('起始的位置',截取几个字符);
        var params = location.search.substr(1); 
        //console.log(params);输出 uname=andy

         // 2. 利用=把字符串分割为数组 split('=');
         var arr = params.split('=');
        //console.log(arr); 输出 ["uname", "ANDY"]

        var div = document.querySelector('div');
        div.innerHTML = arr[1] + ',欢迎您';
     </script>

location对象的方法

location.assign()跟href一样,可以跳转页面(重定向页面),记录历史
location.replace()替换当前页面,不记录历史,不能后退
location.reload()重新加载页面,相当于刷新按钮,参数为ture则强制刷新
  // 记录浏览历史,所以可以实现后退功能
            location.assign('http://www.itcast.cn');
            // 不记录浏览历史,所以不可以实现后退功能
            location.replace('http://www.itcast.cn');
            location.reload(true);

祝你学习快乐!

举报

相关推荐

0 条评论