JavaScript 获取 URL 参数与 Script 标签参数的实现方法

作者:闭包旅人时间:2026-10-25 03:03:13浏览:141

本文介绍了两种在 JavaScript 中获取参数的方法:一是解析当前页面的 URL 查询字符串,二是从当前执行的 Script 标签 src 属性中提取参数。通过正则表达式匹配,分别实现了获取所有参数或指定单个参数的功能,并提供了完整的代码示例与注意事项。

获取 URL 查询参数

获取 URL 参数:


具体实现代码如下:

 
// 最新写法:
var getArgs = function() { // 获取 URL 查询字符串
var params = document.location.search, reg = /(?:^\?|&)(.*?)=(.*?)(?=&|$)/g, temp, args = {};
while ((temp = reg.exec(params)) != null) args[temp[1]] = decodeURIComponent(temp[2]);
return args;
}; 
// 仅获取单个参数:
var queryString = function(key) {
return (document.location.search.match(new RegExp("(?:^\\?|&)" + key + "=(.*?)(?=&|$)")) || ['', null])[1];
} 
var args = getArgs();
alert(args.name + " | " + args.sex + " | " + args.age);
// 测试链接:<a href="?name=abc&sex=男&age=12">test getQueryString</a>




获取 Script 标签参数

获取 Script 标签参数:


具体实现代码如下:

 
var getScriptArgs = function() { // 获取多个参数
var scripts = document.getElementsByTagName("script"),
script = scripts[scripts.length - 1], // 因为当前 DOM 加载时后面的 script 标签还未加载,所以最后一个就是当前的 script
src = script.src,
reg = /(?:\?|&)(.*?)=(.*?)(?=&|$)/g,
temp, res = {};
while ((temp = reg.exec(src)) != null) res[temp[1]] = decodeURIComponent(temp[2]);
return res;
}; 
var args = getScriptArgs();
alert(args.a + " | " + args.b + " | " + args.c);
// 假如上面的 js 是在这个 js1.js 的脚本中<script type="text/javascript" src="js1.js?a=abc&b=汉字&c=123"></script>
var getScriptArg = function(key) { // 获取单个参数
var scripts = document.getElementsByTagName("script"),
script = scripts[scripts.length - 1],
src = script.src;
return (src.match(new RegExp("(?:\\?|&)" + key + "=(.*?)(?=&|$)")) || ['', null])[1];
}; 
alert(getScriptArg("c"));

ps: 不要在方法中调用方法,否则可能始终获取的是最后一个 js 文件的参数,要在方法中使用,请先用变量保存,在方法中直接获取

作者最新文章