js获取地址栏参数

在使用JavaScript开发网页时,经常会遇到需要获取地址栏参数的情况。地址栏参数是指网页地址中问号后面的参数,格式一般为 key=value 的形式,多个参数之间使用 & 符号连接。例如:https://www.example.com?name=Lucy&age=20。
在本文中,我们将详细介绍如何使用JavaScript获取地址栏参数的方法,并提供一些实用的示例代码。
1. 使用location对象
在JavaScript中,可以通过window.location对象来获取当前页面的地址信息。window.location.search属性可以获取到地址栏中问号后面的参数部分。
下面是一个使用window.location.search来获取地址栏参数的示例代码:
function getParameterByName(name) {
name = name.replace(/[\[\]]/g, "\\&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|)"),
results = regex.exec(window.location.search);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
// 获取参数name的值
var name = getParameterByName('name');
console.log(name); // 输出:Lucy
// 获取参数age的值
var age = getParameterByName('age');
console.log(age); // 输出:20
在上面的代码中,getParameterByName函数接收一个参数name,用于获取指定名称的地址栏参数的值。函数中通过正则表达式匹配的方式来获取参数的值,并对参数进行解码处理。
2. 使用URLSearchParams对象
除了使用正则表达式来获取地址栏参数外,还可以使用URLSearchParams对象来实现。URLSearchParams对象提供了一组方便的方法来操作URL查询参数。
下面是一个使用URLSearchParams对象来获取地址栏参数的示例代码:
var searchParams = new URLSearchParams(window.location.search);
// 获取参数name的值
var name = searchParams.get('name');
console.log(name); // 输出:Lucy
// 获取参数age的值
var age = searchParams.get('age');
console.log(age); // 输出:20
在上面的代码中,首先通过new URLSearchParams(window.location.search)来创建一个URLSearchParams对象,然后可以使用get方法来获取指定名称的参数值。
3. 示例代码说明
下面我们通过一个完整的示例代码来演示如何使用JavaScript获取地址栏参数,并在页面上显示参数的值:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Get URL Parameters</title>
</head>
<body>
<h1>URL Parameters:</h1>
<ul id="parametersList"></ul>
<script>
function getParameterByName(name) {
name = name.replace(/[\[\]]/g, "\\&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|)"),
results = regex.exec(window.location.search);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
var parametersList = document.getElementById('parametersList');
var searchParams = new URLSearchParams(window.location.search);
// 显示所有参数及其值
searchParams.forEach(function(value, key) {
var listItem = document.createElement('li');
listItem.textContent = key + ': ' + value;
parametersList.appendChild(listItem);
});
</script>
</body>
</html>
在上面的示例代码中,我们首先定义了一个getParameterByName函数来获取地址栏参数的值,然后使用URLSearchParams对象获取所有的参数,最后通过forEach方法遍历所有参数并在页面上显示出来。
4. 运行结果
当我们将上面的示例代码保存为一个HTML文件,然后将其部署到一个服务器上进行访问时,页面将显示如下:
URL Parameters:
name: Lucy
age: 20
页面上会显示出所有地址栏参数的名称及对应的值。
通过本文的详细介绍,相信您已经了解了如何使用JavaScript来获取地址栏参数。无论是使用window.location.search属性还是URLSearchParams对象,都可以轻松地实现获取地址栏参数的功能。
极客笔记