国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

JS 文件傳參及處理技巧分析

2024-05-06 14:10:04
字體:
來源:轉載
供稿:網友
解決思路:

1、首先獲取到當前JS文件的SRC屬性,這里有一個小技巧:我們只需要獲取當前頁面最后一個script標記內容即可。
為什么??因為JS是順序解析的,當前JS腳本解析時后面的js都還沒有解析到,當然就認為自己就是最后一個script了。此外,這樣獲取還有一個好處:我們可以多次引用同一個文件且傳入不同的參數,這樣可以在js文件中根據參數不同做不同處理,很巧妙把!簡直就是動態語言了。
代碼如下:
代碼如下:
var scripts=document.getElementsByTagName("script");
var curJS=scripts[scripts.length-1]; //curJS就是我們當前的js文件

得到這個就好辦了,通過curJS.src即可獲取到完整的路徑內容(包括參數)。

2、下面的就是解析參數內容了,解析的過程相當簡單,相信很多人都容易完成這一步。
但我們要對一個特殊情況進行處理:如果一個參數被傳入了多次,則要將該參數值轉換為數組存儲每一個傳入的值。

完整測試腳本如下:

代碼如下:
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 i=0,len=paramsArr.length;i<len;i++){
param=paramsArr[i].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 i in args) argsStr.push(i+':'+showArg(args[i]));
return '{'+argsStr.join(',')+'}';
}
return function(){return args;} //以json格式返回獲取的所有參數
})();

alert(getArgs());
alert("username:"+getArgs()["username"]);


測試示例的HTML源碼:
代碼如下:
<!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="" />
<script type="text/javascript" src="test.js?id=4&username=yemoo&id=1&uid=110"></script>
<script type="text/javascript" src="test.js?id=5&username=ajaxbbs&id=7&uid=253"></script>
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 五大连池市| 双峰县| 西林县| 罗田县| 万宁市| 天长市| 永年县| 禄丰县| 平果县| 吴旗县| 肥乡县| 高平市| 长汀县| 德格县| 龙陵县| 清涧县| 石渠县| 岳西县| 甘孜| 凤庆县| 福州市| 正阳县| 龙江县| 台北县| 景德镇市| 阳山县| 林甸县| 中山市| 南木林县| 那坡县| 玛沁县| 秦皇岛市| 洪雅县| 基隆市| 车险| 平顺县| 扶绥县| 高邮市| 长子县| 丰都县| 梁山县|