JavaScript获取当前页面路径的三种方法

 更新时间:2024年05月17日 11:33:59   作者:sg_knight  
在Web开发中,我们经常需要获取当前页面的URL路径,以便进行导航、数据加载或其他与页面相关的操作,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 获取url路径中的参数

需求

假设骑在路径:https://localhost/zhaopin?name=aa&age=18&state=2,现在要获取url中各参数的值,比如:当请求name时获取到aa,当获取到age时获取到18。

理论基础

let url = document.location.toString();//获取url地址
 
let urlParmStr = url.slice(url.indexOf('?')+1);//获取问号后所有的字符串
 
let arr = urlParmStr.split('&');//通过&符号将字符串分割转成数组
 
let courseId = arr[0].split("=")[1];//获取数组中第一个参数
 
let unit_title=arr[1].split("=")[1];//第二个参数
 
unit_title=decodeURI(unit_title);//转码将解码方式unscape换为decodeURI,将中文参数获取
 
console.log(unit_title);

解决方案

方法一:

function getUrlVariable(variable) {
    var query = window.location.search.substring(1);
    var vars = query.split("&");
    for (var i = 0; i < vars.length; i++) {
        var pair = vars[i].split("=");
        if (pair[0] == variable) {
            return pair[1];
        }
    }
	//返回boolean类型的数据
    return (false);
}

方法二:

function getUrlParameter(name) {
    name = name.replace(/[]/, "\[").replace(/[]/, "\[").replace(/[]/, "\\\]");
    var regexS = "[\\?&]" + name + "=([^&#]*)";
    var regex = new RegExp(regexS);
    var results = regex.exec(window.parent.location.href);
    if (results == null)
        return "";
    else {
        return results[1];
    }
}

测试

测试路径:https://localhost/zhaopin?name=aa&age=18&state=2

<script>
	let name =getUrlVariable("name");
	console.log(name);
</script>

总结

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

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

到此这篇关于JavaScript获取当前页面路径的三种方法的文章就介绍到这了,更多相关JavaScript获取页面路径内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • JS显示下拉列表框内全部元素的方法

    JS显示下拉列表框内全部元素的方法

    这篇文章主要介绍了JS显示下拉列表框内全部元素的方法,涉及javascript遍历下拉列表元素的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-03-03
  • 获取鼠标在div中的相对位置的实现代码

    获取鼠标在div中的相对位置的实现代码

    如何获取鼠标在div中的相对位置,其实是很简单,下有个不错的示例,感兴趣的朋友可以参考下
    2013-12-12
  • 纯js分页代码(简洁实用)

    纯js分页代码(简洁实用)

    纯js写的分页代码且简洁实用哦!需要的朋友可以过来参考下,希望对大家有所帮助
    2013-11-11
  • web 屏蔽BackSpace键实例代码

    web 屏蔽BackSpace键实例代码

    在web端,输入的时候,很容易在文本框消失焦点的时候,点击退格键,页面就回退了,下面是一种屏蔽页面回退键的方法,一起看看吧
    2016-12-12
  • 一文弄懂JavaScript的继承方式

    一文弄懂JavaScript的继承方式

    这篇文章主要介绍了一文弄懂JavaScript的继承方式,在java面试过程中经常被问到javascript中有几种继承方式,每种继承方式是怎么实现的,文中给大家讲解的非常详细,需要的朋友可以参考下
    2022-05-05
  • JavaScript实现数组全排列、去重及求最大值算法示例

    JavaScript实现数组全排列、去重及求最大值算法示例

    这篇文章主要介绍了JavaScript实现数组全排列、去重及求最大值算法,结合实例形式分析了JavaScript针对数组的递归、遍历、排序等相关操作技巧,需要的朋友可以参考下
    2018-07-07
  • TypeScript命名空间合并讲解

    TypeScript命名空间合并讲解

    这篇文章主要介绍了TS命名空间合并讲解,回顾上一节的内容,在上一节中我们介绍了TS中最常见的声明合并:接口合并,今天要讲的内容也是TS中的声明合并,但这次是命名空间相关的合并,需要的朋友可以参考一下
    2021-12-12
  • 微信小程序提交form操作示例

    微信小程序提交form操作示例

    这篇文章主要介绍了微信小程序提交form操作,结合实例形式分析了微信小程序开发中使用form组件实现数据提交与数据处理相关操作技巧,需要的朋友可以参考下
    2018-12-12
  • 微信小程序封装网络请求和拦截器实战步骤

    微信小程序封装网络请求和拦截器实战步骤

    这篇文章主要介绍了微信小程序封装网络请求和拦截器实战步骤,这样可以提高开发效率,减少代码重复,同时也可以提高代码的可维护性和可读性
    2023-03-03

最新评论