一、获取当前Script附带的参数
getScriptArgs: function() { //获取多个参数 var scripts = document.getElementsByTagName("script"), script = scripts[scripts.length - 1], //因为当前dom加载时后面的script标签还未加载,所以最后一个就是当前的script src = script.src, reg = /(?:?|&)(.*?)=(.*?)(?=&|$)/g, temp, res = {}; res["src"] = src; while ((temp = reg.exec(src)) != null) res[temp[1]] = decodeURIComponent(temp[2]); return res; }
二、根据名字获取Hash值
function getQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); var r = window.location.hash.substr(1).match(reg); if (r != null) return r[2]; return null; }
三、应用实例
//lastest: var getArgs = function() { //get url querystring 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> // JavaScript Document 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"));