引言
在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获取页面路径内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论