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;

原文地址:https://www.cnblogs.com/xxyy1122/p/4887186.html