window.location.href的介绍及使用

目录

介绍:

获取当前 URL

设置新的 URL

URL 的组成部分

解析 URL 参数

什么是片段标识符的URL?

使用new URL:

 输出的部分解释:

 假如我们需要获取路径上的最后一级的路径名:


介绍:

window.location.href 是 JavaScript 中一个非常常用的属性,它用于获取或设置当前窗口或标签页的 URL。这个属性返回的是完整的 URL

获取当前 URL

简单地使用 获取当前页面的 URL:

console.log(window.location.href);
 // 输出 "https://mp.csdn.net/mp_blog/creation/editor?param=value#section"

设置新的 URL

赋值一个新的 URL 字符串,浏览器会立即跳转到那个新的页面,比如下面的跳转到谷歌了

window.location.href = "https://www.google.com"; 
// 浏览器会跳转到 Google 的主页

URL 的组成部分

一个 URL 通常由以下几个部分组成:

  • 协议(例如 http:https:
  • 域名(例如 www.example.com
  • 端口(可选,例如 :8080
  • 路径(例如 /page/subpage
  • 查询参数(可选,例如 ?param1=value1&param2=value2
  • 片段标识符(可选,例如 #section

如果想清楚的了解,可以控制台输出这个看看:(下面有简单的讲到)

console.log(new URL(window.location.href));

解析 URL 参数

 他本身不直接提供解析查询参数的功能,但你可以使用 JavaScript 来手动解析它们,可以使用 URLSearchParams 接口来解析查询字符串

const queryParamsString = "param1=value1&param2=value2";  
const queryParams = new URLSearchParams(queryParamsString);  
  
console.log(queryParams.get('param1')); // 输出 "value1"  
console.log(queryParams.get('param2')); // 输出 "value2"

在实际中,其实你也可以使用 window.location.search(它包含从问号(?)开始的 URL 部分)中获取查询参数,而不是直接提供一个字符串。例如:

const queryParams = new URLSearchParams(window.location.search);  
console.log(queryParams.get('param1')); // 输出查询参数 param1 的值(如果有的话)

什么是片段标识符的URL?

URL的末尾使用#符号后跟一个标识符指定的。这个片段标识符通常用于标识文档(如HTML页面)内的某个位置,如特定的段落标题锚点(anchor)。

通俗的讲就是一个在当前页面的跳转到一个具体的位置,就如上面的目录点击跳转到n级标题,其实就是一个更加简便的操作

当用户点击或浏览器导航到带有片段标识符的URL时,浏览器会自动滚动到该标识符所指向的文档位置。这对于创建指向页面内特定部分的链接非常有用,而无需使用额外的导航或滚动

例如,在HTML页面中,你点击了下面的a标签:

<a href="https://example.com/page#yourCase">跳转到 yourCase </a>

浏览器会导航到https://example.com/page页面,并自动滚动到页面上ID为yourCase的元素(如果页面上存在这样的元素)。这个ID通常是通过HTML元素的id属性来设置的,如:

<div id="yourCase">  yourCase 的内容   </div>

需要注意的是,片段标识符并不会被发送到服务器,它们只在客户端(即用户的浏览器)中使用。因此,它们不会影响服务器端的页面加载或处理

使用new URL:

创建一个新的 URL 对象,该对象基于当前浏览器窗口的 URL(window.location.href)。这个 URL 对象提供了很多方法和属性,用于解析、查询和操作 URL

new URL(window.location.href)

如下图所示,我们在当前页面输出了:

其实你只要知道输出的是啥就可以了,并不需要具体的去了解他

 输出的部分解释:

  1. href:完整的 URL 字符串。这和你传入 new URL() 的 window.location.href 是一样的。
  2. protocol:URL 的协议部分,例如 "http:" 或 "https:"
  3. hostname:URL 的主机名,不包括端口。例如,对于 URL "https://www.example.com:8080/path",hostname 会是 "www.example.com"
  4. port:URL 的端口号。如果没有明确指定端口(例如使用 HTTP 的默认 80 端口或 HTTPS 的默认 443 端口),则这个属性可能是一个空字符串。
  5. pathname:URL 的路径部分,从 "/" 开始。例如,对于 URL "https://www.example.com/path/to/resource",pathname 会是 "/path/to/resource"
  6. search:URL 的查询部分(包括 "?"),如果没有查询部分,则为空字符串。
  7. hash:URL 的 "fragment" 部分(从 "#" 开始的部分),如果没有这部分,则为空字符串

 假如我们需要获取路径上的最后一级的路径名:

这个的话我们可以设置一些条件,当我们获取到的最后一级的路径达到要求时(存在xx时),进行某些操作,

比如下方,在请求中进行强制的退出登录操作,设置了不会进行退出的页面。

function getLastPath() {  

  const fullUrl = window.location.href;  
  // 创建URL对象  
  const url = new URL(fullUrl);
  // 去除查询参数  
  const pathWithoutQuery = url.pathname;  
  // 获取路径的最后一级(最后一个'/'之后的部分)  
  const lastSegment = pathWithoutQuery.substring(pathWithoutQuery.lastIndexOf('/') + 1);  

  return lastSegment;  
}  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/614612.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2023版brupsuite专业破解安装

安装教程&#xff0c;分两部分&#xff1a; 1、安装java环境、参考链接JAVA安装配置----最详细的教程&#xff08;测试木头人&#xff09;_java安装教程详细-CSDN博客 2、安装2023.4版本brupsuite&#xff1a;参考链接 2023最新版—Brup_Suite安装配置----最详细的教程&…

【数据分析】 JupyterNotebook安装及使用简介

各位大佬好 &#xff0c;这里是阿川的博客 &#xff0c; 祝您变得更强 个人主页&#xff1a;在线OJ的阿川 大佬的支持和鼓励&#xff0c;将是我成长路上最大的动力 阿川水平有限&#xff0c;如有错误&#xff0c;欢迎大佬指正 在数据分析中&#xff0c;一般用Pycharm编辑代…

大模型面试常考知识点1

文章目录 1. 写出Multi-Head Attention2. Pre-Norm vs Post-Norm3. Layer NormRMS NormBatch Norm 4. SwiGLU从ReLU到SwishSwiGLU 5. AdamW6. 位置编码Transformer位置编码RoPEALibi 7. LoRA初始化 参考文献 1. 写出Multi-Head Attention import torch import torch.nn as nn …

按键配合LDO实现开关功能

今天给大家分享一个学到的按键开关电路&#xff0c;适合没有足够空间给自锁开关的场景&#xff0c;既可以用于USB供电控制也可以用于电池供电控制。话不多说上电路图先。 核心任务就是通过按键控制LDO芯片的使能管脚的电平状态&#xff0c;这枚NCP芯片高电平使能&#xff0c;VB…

ETLCloud中如何执行Java Bean脚本

ETLCloud中如何执行Java Bean脚本 在ETLCloud这一强大的数据集成和转换平台中&#xff0c;执行Java Bean脚本的能力为其增添了更多的灵活性和扩展性。Java Bean脚本不仅仅是一段简单的代码&#xff0c;而是一种强大的工具&#xff0c;可以帮助用户定制和优化数据处理的每一个环…

AI 绘画神器 Fooocus 2.3.1 汉化教程(中文界面/汉化包下载/持续更新最新版本...)

本文收录于《AI绘画从入门到精通》专栏&#xff0c;专栏总目录&#xff1a;点这里&#xff0c;订阅后可阅读专栏内所有文章。 大家好&#xff0c;我是水滴~~ Fooocus 是一款功能强大的 AI 绘画神器&#xff0c;它能够帮助我们以更高效、更创意的方式进行绘画创作。本教程将详细…

C++入门系列-构造函数

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 类的6个默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为空类。 空类中真的什么都没有吗&#xff1f;并不是&#xff0c;任何类在什么都不写时&#xff0c;编译器会…

社交媒体数据恢复:飞书

飞书数据恢复过程包括以下几个步骤&#xff1a; 确认数据丢失&#xff1a;首先要确认数据是否真的丢失&#xff0c;有时候可能只是被隐藏或者误操作删除了。 检查回收站&#xff1a;飞书中删除的文件会默认保存在回收站中&#xff0c;用户可以通过进入回收站找到被删除的文件&…

推荐全网最全的AI小白进阶指南

1. 引言 您想学习人工智能&#xff1f;但不知道如何开始&#xff0c;也不知道从哪里开始&#xff1f;互联网上的资源总是丰富多彩&#xff0c;质量参差不齐&#xff0c;往往容易看花眼而无从下手。 鉴于此&#xff0c;本文重点推荐一些个人收集的还不错的一些资源供大家学习参…

ApiHug Official Website

&#x1f917; ApiHug {Postman|Swagger|Api...} 快↑ 准√ 省↓ GitHub - apihug/apihug.com: All abou the Apihug apihug.com: 有爱&#xff0c;有温度&#xff0c;有质量&#xff0c;有信任ApiHug - API design Copilot - IntelliJ IDEs Plugin | MarketplaceApiHug-H…

DSSAT作物模建模方法

原文链接&#xff1a;DSSAT作物模建模方法https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247604079&idx5&sn0151d083d35c9ea259cf155d082b0145&chksmfa821688cdf59f9eddae14a99fce4f56c6ad9d73db38e0b9b165dcb9b315b6ed845d83cd085f&token94156244…

c++多态机制

多态 在 C 中&#xff0c;多态&#xff08;Polymorphism&#xff09;是一种面向对象编程的重要概念&#xff0c;它允许不同类的对象对同一消息做出不同的响应。具体来说&#xff0c;多态性允许基类的指针或引用在运行时指向派生类的对象&#xff0c;并且根据对象的实际类型来调…

日报表定时任务优化历程

报表需求背景 报表是一个很常见的需求&#xff0c;在项目中后期往往会需要加多种维度的一些统计信息&#xff0c;今天就来谈谈上线近10个月后的一次报表优化优化之路&#xff08;从一天报表跑需要五分钟&#xff0c;优化至秒级&#xff09; 需求&#xff1a;对代理商进行日统计…

BUUCTF[PWN]

BUUCTF[PWN] 题目&#xff1a;warmup_csaw_2016 地址&#xff1a;warmup_csaw_2016ida打开&#xff0c;进main函数&#xff1a;gets函数的栈溢出&#xff1a;给出了sub_40060D函数的地址直接&#xff0c;溢出到sub_40060D的地址即可&#xff1a; from pwn import *p remote…

vue 孙组件调用父组件的方法

通过组件内的 传递方法名称&#xff0c;可以实现孙组件调用父组件。 代码如下&#xff1a; index.html <!DOCTYPE html> <html> <head><meta charset"utf-8"><script src"/framework/vue-2.7.16.min.js"></script>…

数字孪生引擎国产信创环境适配靠谱么?

近期我们组织了一次国产化环境适配以及产品国产化产品替换的交流&#xff0c;虽然从属于不同的业务条线&#xff0c;但是在过去一段时间多多少少都承受不同程度的信创压力&#xff0c;尤其是自然资源业务方面&#xff0c;由于自然资源大多数的业务是属于强GIS的范畴&#xff0c…

基于单片机的直流电机检测与控制系统

摘要&#xff1a; 文章设计一款流电机控制系统&#xff0c;以 STC89C51 作为直流电机控制系统的主控制器&#xff0c;采用 LM293 做为驱动器实现 对直流电机的驱动&#xff0c;采用霍尔实现对直流电机速度的检测&#xff1b;本文对直流电机控制系统功能分析&#xff0c;选择确…

Colab/PyTorch - 003 Transfer Learning For Image Classification

Colab/PyTorch - 003 Transfer Learning For Image Classification 1. 源由2. 迁移学习(ResNet50)2.1 数据集准备2.2 数据增强2.3 数据加载2.4 迁移学习2.5 数据集训练&验证2.6 模型推理 3. 总结4. 参考资料 1. 源由 迁移学习已经彻底改变了 PyTorch 中处理图像分类的方式…

搜歌网搜索各种类型音乐,统统歌曲转换格式mp3,轻松实现音乐自由!

在互联网的广阔天地中&#xff0c;音乐爱好者们总能找到满足自己需求的平台。其中&#xff0c;支持全网搜歌的网站无疑是一个值得推荐的音乐探索乐园。无论是寻找经典老歌&#xff0c;还是发掘新兴音乐&#xff0c;搜他们都能为音乐爱好者提供一站式的服务。 一般支持全网搜索…

微信投票源码系统至尊版 吸粉变现功能二合一

源码简介 微信投票系统在营销和社交互动中发挥着多方面的作用&#xff0c;它能够提升用户的参与度和品牌曝光度&#xff0c;还是一种有效的数据收集、营销推广和民主决策工具。 分享一款微信投票源码系统至尊版&#xff0c;集吸粉变现功能二合一&#xff0c;全网独家支持礼物…