window.location表示当前页面的URL信息。

  1. window.location;
  2. // window 也可以省略
  3. location;

简单认识 URL

先简单对URL进行认识。 :::info URL(uniform resource locator):统一资源定位器。 ::: 用百度的URL进行举例 🌰:

  1. 这是当我去搜索 javascript 时候页面的 URL
  2. https://www.baidu.com/s?tn=39042058_40_oem_dg&ie=utf-8&wd=javascript
  3. https:// 协议
  4. www.baidu.com 域名
  5. :443 端口号,不显示(http 默认是:80https默认是:443
  6. /s 具体的文件夹
  7. ?tn=39042058_40_oem_dg&ie=utf-8&wd=javascript 请求参数
  8. #hash 哈希值(这里没有用到)

属性

window.location通过相应的属性可以获得URL信息

属性 说明
href 获取整个URL
protocol 获取URL中的协议
hostname 获取URL中的域名
port 获取URL中的端口号
pathname 获取URL中的文件路径
search 获取URL中的参数
hash 获取URL中的哈希值

以上属性都是可读可写的!!!

  1. window.location.href; // 获取
  2. window.location.href = "https://www.taobao.com"; // 设置
  3. window.location.protocol; // 获取
  4. window.location.protocol = "https://"; // 设置

📌 window.onhashchange事件可以在URL中的hash更改后触发。 用更改hash更改后不会刷新页面的特性还可以实现单页面应用(SPA:Single-page Application),简单说就是实际上只有一个页面来模拟多个页面之间的切换。

方法

方法 说明
assign() 更改URL地址,一般用window.location.href = "xxx"代替
replace() URL替换,不会新增历史纪录,调用replace()后,用户不能回退到前一页
参数1:要替换的url
reload() URL重新加载
参数:true,可选,表示强制加载,不会从缓冲中加载页面
  1. window.location.assign("https://www.baidu.com");
  2. window.location.replace("https://www.baidu.com");
  3. window.location.reload();
  4. window.location.reload(true);