在JavaScript中获取当前页面路径的方法

        在Web开发中,我们经常需要获取当前页面的URL路径,以便进行导航、数据加载或其他与页面相关的操作。JavaScript提供了几种方法来帮助我们实现这一功能。在本文中,我们将探讨几种常用的方法。

方法一:使用 window.location 对象

  window.location 对象包含了关于当前URL的详细信息。你可以通过访问其属性来获取URL的不同部分。

// 获取完整的URL  
var fullUrl = window.location.href;  
console.log(fullUrl); // 输出完整的URL,例如:https://example.com/page/index.html?param=value#section  
  
// 获取路径部分(不包括域名和查询字符串)  
var pathname = window.location.pathname;  
console.log(pathname); // 输出路径部分,例如:/page/index.html  
  
// 获取查询字符串部分(包括问号)  
var search = window.location.search;  
console.log(search); // 输出查询字符串部分,例如:?param=value  
  
// 获取哈希部分(包括井号)  
var hash = window.location.hash;  
console.log(hash); // 输出哈希部分,例如:#section

方法二:使用 document.URL

   document.URL 属性也是一个简单的选择,它直接返回完整的URL。

var fullUrl = document.URL;  
console.log(fullUrl); // 输出完整的URL,与window.location.href相同

方法三:使用 new URL() 构造函数

        在现代浏览器中,URL 构造函数提供了更强大的URL解析和操作能力。通过它,你可以更细致地获取URL的各个部分,并对其进行修改。

var urlObject = new URL(window.location.href);  
  
// 获取协议(例如:"https:")  
var protocol = urlObject.protocol;  
console.log(protocol); // 输出协议,例如:https:  
  
// 获取主机名(例如:"www.example.com")  
var hostname = urlObject.hostname;  
console.log(hostname); // 输出主机名  
  
// 获取端口号(如果有的话)  
var port = urlObject.port;  
console.log(port); // 输出端口号,默认为空字符串(如果使用的是默认端口)  
  
// 获取路径名(与window.location.pathname相同)  
var pathname = urlObject.pathname;  
console.log(pathname); // 输出路径名  
  
// 获取搜索参数(作为URLSearchParams对象)  
var searchParams = urlObject.searchParams;  
console.log(searchParams.get('param')); // 输出查询字符串中名为'param'的参数值  
  
// 获取哈希(与window.location.hash相同,但不包括井号)  
var hashWithoutPound = urlObject.hash.slice(1); // 移除井号  
console.log(hashWithoutPound); // 输出哈希部分,例如:section

总结

        以上就是在JavaScript中获取当前页面路径的几种常用方法。每种方法都有其独特的用途和优点,你可以根据具体需求选择适合你的方法。无论你选择哪种方法,都能轻松地获取到当前页面的路径并进行相应的操作。

        在大多数情况下,使用 window.location 或 document.URL 就足够了,但如果你需要更复杂的URL处理或修改,那么 URL 构造函数将是一个更好的选择。

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

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

相关文章

如何修复显示器或笔记本电脑屏幕的黄色色调?这里提供几种方法

序言 如果你的笔记本电脑屏幕呈淡黄色,则可以启用夜灯功能。该问题也可能源于连接松散的显示电缆、损坏的显卡驱动程序或错误配置的显示器设置。以下是一些故障排除步骤,你可以尝试解决此问题。 禁用夜间模式 夜间模式功能旨在减少显示器的蓝色色调,使屏幕看起来更温暖,…

光伏设备数据交互模硬件接口要求

模组的弱电接口采用26(间距2.54mm)双排插针作为连接件,模组与电能表的硬件接口示意图如 图1所示(模组正视图方向),接口定义说明见表3。模组外接插座和插头采用凤凰端子结构,接口示意 图应符合附…

网贷大数据查询要怎么保证准确性?

相信现在不少人都听说过什么是网贷大数据,但还有很多人都会将它跟征信混为一谈,其实两者有本质上的区别,那网贷大数据查询要怎么保证准确性呢?本文将为大家总结几点,感兴趣的朋友不妨去看看。 想要保证网贷大数据查询的准确度&am…

差动绕组电流互感器过电压保护器ACTB

安科瑞薛瑶瑶18701709087/17343930412 电流互感器在运行中如果二次绕组开路或一次绕组流过异常电流,都会在二次侧产生数千伏甚至上万伏的过电压。这不仅会使CT和二次设备损坏,也严重威胁运行人员的生命安全,并造成重大经济损失。采用电流互感…

SpringBoot多数据源配置

🍓 简介:java系列技术分享(👉持续更新中…🔥) 🍓 初衷:一起学习、一起进步、坚持不懈 🍓 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正🙏 🍓 希望这篇文章对你有所帮助,欢…

Git知识点总结

目录 1、版本控制 1.1什么是版本控制 1.2常见的版本控制工具 1.3版本控制分类 2、集中版本控制 SVN 3、分布式版本控制 Git 2、Git与SVN的主要区别 3、软件下载 安装:无脑下一步即可!安装完毕就可以使用了! 4、启动Git 4.1常用的Li…

CentOS 7 :虚拟机网络环境配置+ 安装gcc(新手进)

虚拟机安装完centos的系统却发现无法正常联网,咋破! 几个简单的步骤: 一、检查和设置虚拟机网络适配器 这里笔者使用的桥接模式,朋友们可以有不同的选项设置 二、查看宿主机的网络 以笔者的为例,宿主机采用wlan上网模…

在python中对Requests的理解

离上次写文章已经有小半个月了,但是: 没有动态的日子里,都在努力生活❤️;发表动态的日子里,都在热爱生活。🌹 目录 一、python集成工具的分类:1.解释Requests2. Requests3. Response对象的属性…

mvc 异步请求、异步连接、异步表单

》》》 利用Jquery ajax 》》》 mvc 异步表单 c# MVC 添加异步 jquery.unobtrusive-ajax.min.js 方法 具–>Nuget程序包管理器–>程序包管理器控制台 在控制台输入:PM>Install-Package Microsoft.jQuery.Unobtrusive.Ajax –version 3.0.0 回车执行即可在…

5分钟了解Flutter线程Isolate的运用以及Isolate到底是怎样执行的

5分钟了解Flutter线程Isolate的运用以及Isolate到底是什么 Isolate在dart是什么flutter线程内存隔离Isolate的使用第一种,无参数使用Isolate.run 第二种,有参数使用compute:使用Isolate.spawn Isolate与外面线程通讯Isolate以文件形式加载到内存运行 Iso…

led显示屏用什么胶水封装比较好?

led显示屏用什么胶水封装比较好? LED显示屏通常使用特定的胶水进行封装,以确保其稳定性和耐用性。常见的用于LED显示屏封装的胶水类型包括有机硅灌封胶、环氧树脂灌封胶等。 有机硅灌封胶具有优异的耐高温、防水、绝缘和密封性能,非常适合用…

使用MATLAB/Simulink点亮STM32开发板LED灯

使用MATLAB/Simulink点亮STM32开发板LED灯-笔记 一、STM32CubeMX新建工程二、Simulink 新建工程三、MDK导入生成的代码 一、STM32CubeMX新建工程 1. 打开 STM32CubeMX 软件,点击“新建工程”,选择中对应的型号 2. RCC 设置,选择 HSE(外部高…

python菜鸟级安装手册-上篇

python安装教程 电脑-右键-属性,确认系统类型和版本号,比如本案例系统是64位 win10 点击python官网,进行下载 适用于 Windows 的 Python 版本 |Python.org 选择第一个安装程序64位即可满足需要, 嵌入式程序包是压缩包版本&…

MySQL中的ON DUPLICATE KEY UPDATE和REPLACE

在 MySQL 中,ON DUPLICATE KEY UPDATE 和 REPLACE 语句都可以用来处理插入数据时主键或唯一键冲突的情况,但它们在处理冲突的方式上有所不同。它们有以下区别: 行为方式: ON DUPLICATE KEY UPDATE:当插入的数据行存在冲…

【竞技宝】欧冠:多特淘汰大巴黎进决赛,姆巴佩迷失

多特蒙德在本赛季欧冠半决赛第二回合较量中,跟大巴黎队狭路相逢。赛前,大部分球迷和媒体都看好坐拥姆巴佩的大巴黎队,可以靠着主场作战的优势,逆转多特蒙德晋级欧冠决赛。大巴黎队主场作战确实创造出不少得分机会,只可惜球队运气有些差,射门都打在了多特蒙德横梁上。反观多特蒙…

双翻斗雨量计学习

双翻斗雨量计用户手册(脉冲型) 本仪器由雨量计壳体、承雨口、漏斗、翻斗支撑、上漏斗雨量调节支架、上漏斗、汇集漏斗、计数翻斗雨量调节支架、计数翻斗、干簧管安装架、轴承螺钉、出水漏斗、腿部支架、干簧管、水平泡、调节支撑板、控制盒、调平装置、接…

IaC实战指南:DevOps的自动化基石

基础设施即代码(Infrastructure as Code,IaC)是指利用脚本、配置或编程语言创建和维护基础设施的一组实践和流程。通过IaC,我们可以轻松测试各个组件、实现所需的功能并在最小化停机时间的前提下进行扩展。更值得一提的是&#xf…

算法基础01一快速排序,归并排序,二分

一.排序 1.快速 排序 基于分治 确定分界点 左 右 中间 随机划分区间 左半边<x >x在右半边递归处理左右两端 #include<iostream>using namespace std;const int N 1e6 10;int n; int q[N]; void quick_sort(int q[],int l,int r) {if(l>r)return;//边界&…

k8s 资源文件参数介绍

Kubernetes资源文件yaml参数介绍 yaml 介绍 yaml 是一个类似 XML、JSON 的标记性语言。它强调以数据为中心&#xff0c;并不是以标识语言为重点例如 SpringBoot 的配置文件 application.yml 也是一个 yaml 格式的文件 语法格式 通过缩进表示层级关系不能使用tab进行缩进&am…

怎么快速分享视频文件?用二维码看视频的方法

怎样不通过传输下载分享视频内容呢&#xff1f;以前分享视频内容&#xff0c;大多会通过微信、QQ、邮箱、网盘等形式来传递。但是这种方式需要下载后才可以观看&#xff0c;不仅占用手机内存&#xff0c;而且效率也比较低&#xff0c;所以现在很多人会采用视频生成二维码的方式…
最新文章