获取当前页面参数Hash和Search,或者当前Script的参数
一、获取当前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"));
    缘来天注定,缘去人自夺。种如是因,收如是果,一切唯心造。笑言面对,不去埋怨。悠然、随心、随性、随缘。
                    
                
                
            
        
浙公网安备 33010602011771号