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获取页面路径内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 十个开发人员面临的最常见的JavaScript问题总结

    十个开发人员面临的最常见的JavaScript问题总结

    今天,JavaScript 是几乎所有现代 Web 应用的核心。这就是为什么JavaScript问题,以及找到导致这些问题的错误,是 Web 发者的首要任务。本文总结了十个常见的问题及解决方法,需要的可以参考一下
    2022-11-11
  • 解决layer.prompt无效的问题

    解决layer.prompt无效的问题

    今天小编就为大家分享一篇解决layer.prompt无效的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-09-09
  • js实现省市联动效果的简单实例

    js实现省市联动效果的简单实例

    本篇文章主要是对js实现省市联动效果的简单实例进行了介绍,需要的朋友可以过来,希望对大家有所帮助
    2014-02-02
  • 解决远程页面抓取中的乱码问题?

    解决远程页面抓取中的乱码问题?

    解决远程页面抓取中的乱码问题?...
    2007-03-03
  • JavaScript如何使用插值实现图像渐变

    JavaScript如何使用插值实现图像渐变

    这篇文章主要介绍了JavaScript如何使用插值实现图像渐变,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • JavaScript如何获取和解析页面内容

    JavaScript如何获取和解析页面内容

    这篇文章主要为大家详细介绍了如何利用JavaScript实现获取和解析页面内容,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2025-03-03
  • JavaScript基础——使用Canvas绘图

    JavaScript基础——使用Canvas绘图

    这篇文章主要介绍了JavaScript基础——使用Canvas绘图,Canvas也真的跟现实生活中的画布非常相似,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2016-11-11
  • 微信小程序网络数据请求服务实现详解

    微信小程序网络数据请求服务实现详解

    这篇文章主要介绍了微信小程序网络数据请求服务,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-10-10
  • BootStrap表单时间选择器详解

    BootStrap表单时间选择器详解

    这篇文章主要为大家详细介绍了BootStrap表单时间选择器的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • JavaScript数组,JSON对象实现动态添加、修改、删除功能示例

    JavaScript数组,JSON对象实现动态添加、修改、删除功能示例

    这篇文章主要介绍了JavaScript数组,JSON对象实现动态添加、修改、删除功能,结合实例形式分析了JavaScript针对json数组的添加、删除、修改操作实现技巧,需要的朋友可以参考下
    2018-05-05

最新评论