var getArgs=(function(){ var sc=document.getElementsByTagName('script'); var paramsArr=sc[sc.length-1].src.split('?')[1].split('&'); var args={},argsStr=[],param,t,name,value; for(var ii=0,len=paramsArr.length;ii<len;ii++){ param=paramsArr[ii].split('='); name=param[0],value=param[1]; if(typeof args[name]=="undefined"){ //参数尚不存在 args[name]=value; }else if(typeof args[name]=="string"){ //参数已经存在则保存为数组 args[name]=[args[name]] args[name].push(value); }else{ //已经是数组的 args[name].push(value); } } /*在实际应用中下面的showArg和args.toString可以删掉,这里只是为了测试函数getArgs返回的内容*/ var showArg=function(x){ //转换不同数据的显示方式 if(typeof(x)=="string"&&!//d+/.test(x)) return "'"+x+"'"; //字符串 if(x instanceof Array) return "["+x+"]" //数组 return x; //数字 } //组装成json格式 args.toString=function(){ for(var ii in args) argsStr.push(ii+':'+showArg(args[ii])); return '{'+argsStr.join(',')+'}'; } return function(){return args;} //以json格式返回获取的所有参数 })(); alert(getArgs()); alert("username:"+getArgs()["username"]); <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title> new document </title> <meta name="generator" content="editplus" /> <meta name="author" content="" /> <meta name="keywords" content="" /> <meta name="description" content="" /> <mce:script type="text/javascript" src="test.js?id=4&username=yemoo&id=1&uid=110" mce_src="test.js?id=4&username=yemoo&id=1&uid=110"></mce:script> <mce:script type="text/javascript" src="test.js?id=5&username=ajaxbbs&id=7&uid=253" mce_src="test.js?id=5&username=ajaxbbs&id=7&uid=253"></mce:script> <mce:script type="text/javascript" src="test.js?id=6&username=jack&id=8&uid=258" mce_src="test.js?id=6&username=jack&id=8&uid=258"></mce:script> </head> <body> </body> </html>