JS基础知识梳理---location()对象
(一) 简介
location对象是一个较为特别的对象,既是window对象的属性也是document对象的属性。location对象的用处不仅仅表现在保存着当前文档的信息,还能将URL解析成独立的片段。
location.port;//返回当前服务器的端口号,如果不存在,返回空值 location.hostname;//仅仅返回服务器名称 location.host;//返回服务器的名称还有端口号(如果存在的话) location.href;//返回当前页面的完整地址==location.toString() location.pathname;//返回URL中的目录和文件名称 location.protocol;//返回当前页使用的协议类型。http||https location.search;//返回URL的查询字符串,以问好开头
(二) 方法
1:使用assign(strUrl);立即打开新的strUrl,并在浏览器中生成一条记录。如果将location.href 或者 window.location设置成strUrl,也会调用assign()方法
location.assign("http://www.uncle-yang.com"); //等价于↓↓↓↓ window.location = "http://www.uncle-yang.com"; //等价于↓↓↓↓ location.href = "http://www.uncle-yang.com";
2:修改location对象的属性也可以改变当前加载的页面
//假设初始URL为 http://www.uncle-yang.com/demo //将URL修改为 http://www.uncle-yang.com/demo/#sectionA location.hash = "#sectionA"; //将URL修改为 http://www.uncle-yang.com/?q=name location.search = "?q=name"; //将URL修改为 http://www.baidu.com/demo location.hostname = 'www.baidu/com'; //将URL修改为 http://www.uncle-yang.com/index location.pathname = 'index'; //将URL修改为 http://www.uncle-yang.com:8080/index location.port = '8080';
每次修改location的属性(hash除外),页面都会以新得URL重新加载
3:当通过上述的任何一种方式修改URL的时候,浏览器历史记录中就会产生一条新的记录,用户可以通过点击“后退”导航的前一个页面。要禁止这种行为,可以使用replace(strURL)方法。只接受一个要打开的URL字符串,浏览器的位置会变,但是不再能回到前一个页面。
4:当前页面重新加载。reload(boole);如果页面自上次请求没有改变过,那么会直接从缓存中读取数据。如果强制从服务器重新加载,那么就需要传递参数true;