js jquery 實現html頁面之間參數傳遞(單一參數、對象參數傳遞)


最近自己在忙着做畢業設計,后台程序員,前端菜雞,因為需要,所以實現了html頁面之間參數傳遞。------jstarseven 、菜雞的自我修養.

頁面A代碼如下:

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5 <title>html頁面參數傳遞</title>
 6 </head>
 7 <body>
 8     頁面A
 9 <input id="btn-a" type="button" value="跳轉B頁面"/>
10 <script type="text/javascript" src="jquery-1.11.2.js"></script>
11 </body>
12 <script>
13 
14 $(document).ready(function(){
15 
16     var obj={
17         id:1,
18         name:"張三",
19         age:10
20     };
21     alert("A頁面參數:"+parseParam(obj));
22     $("#btn-a").click(function(){
23         window.location.href="domoB.html?"+parseParam(obj);
24     });
25     
26 });
27 
28 
29 
30 // 將js對象轉成url jquery實現
31 var parseParam=function(paramObj, key){
32   var paramStr="";
33   if(paramObj instanceof String||paramObj instanceof Number||paramObj instanceof Boolean){
34     paramStr+="&"+key+"="+encodeURIComponent(paramObj);
35   }else{
36     $.each(paramObj,function(i){
37       var k=key==null?i:key+(paramObj instanceof Array?"["+i+"]":"."+i);
38       paramStr+='&'+parseParam(this, k);
39     });
40   }
41   return paramStr.substr(1);
42 };
43 
44 
45 /**
46  * paramObj 將要轉為URL參數字符串的對象
47  * key URL參數字符串的前綴
48  * encode true/false 是否進行URL編碼,默認為true
49  * js實現
50  * return URL參數字符串
51  */
52 var urlEncode = function (paramObj, key, encode) {
53   if(paramObj==null) return '';
54   var paramStr = '';
55   var t = typeof (paramObj);
56   if (t == 'string' || t == 'number' || t == 'boolean') {
57     paramStr += '&' + key + '=' + ((encode==null||encode) ? encodeURIComponent(paramObj) : paramObj);
58   } else {
59     for (var i in paramObj) {
60       var k = key == null ? i : key + (paramObj instanceof Array ? '[' + i + ']' : '.' + i);
61       paramStr += urlEncode(paramObj[i], k, encode);
62     }
63   }
64   return paramStr;
65 };
66 
67 
68 </script>
69 </html>
View Code

 

轉載請標明原文地址:http://www.cnblogs.com/jstarseven/p/5537333.html

頁面B代碼如下:

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2 <html xmlns="http://www.w3.org/1999/xhtml">
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5 <title>html頁面參數傳遞</title>
 6 </head>
 7 <body>
 8     頁面B
 9 <script type="text/javascript" src="jquery-1.11.2.js"></script>
10 </body>
11 <script>
12 
13 $(document).ready(function(){
14     var obj=GetRequest();
15     alert(obj.id+"--"+obj.name+"--"+obj.age);
16 });
17 
18 
19 
20 //根據參數名稱獲取url參數
21 function getUrlParamValue(name) {
22     var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
23     var r = window.location.search.substr(1).match(reg);
24     if (r != null) return decodeURIComponent(r[2]);
25     return null;
26 }
27 
28 //獲取url參數封裝成對象
29 function GetRequest() {
30   
31   var url = location.search; //獲取url中"?"符后的字串
32    var theRequest = new Object();
33    if (url.indexOf("?") != -1) {
34       var str = url.substr(1);
35       strs = str.split("&");
36       for(var i = 0; i < strs.length; i ++) {
37          theRequest[strs[i].split("=")[0]]=decodeURIComponent((strs[i].split("=")[1]));
38       }
39    }
40    return theRequest;
41 }
42 
43 
44 </script>
45 </html>
View Code

 

首先打開頁面A,顯示會傳遞的數據參數,點擊跳轉按鈕---》B頁面顯示B頁面獲取的參數值。

  


 -END-


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM