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 文件的参数,要在方法中使用,请先用变量保存,在方法中直接获取
作者最新文章
什么时候该用JS构造器:与工厂模式、字面量的选择对比
2026-11-05 16:18:22
推荐几款轻量级JS照片墙开源库及对比
2026-11-05 15:56:19
JavaScript递归写法有哪些常见陷阱及避免方法
2026-11-05 14:53:38
JS数组浅拷贝与深拷贝怎么选?场景与方法总结
2026-11-05 14:41:02
p5.js 中 setup() 和 draw() 函数的执行机制详解
2026-11-05 12:32:38
