本篇教程介绍了JavaScript如何实现html页面之间参数传递,希望阅读本篇文章以后大家有所收获,帮助大家对JavaScript的理解更加深入。
<
页面A代码如下:
1 html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
3
4
5
html页面参数传递6
7
8 页面A
9
10
11
12
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
69
页面B代码如下:
1 html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
3
4
5
html页面参数传递6
7
8 页面B
9
10
11
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
37 theRequest[strs[i].split("=")[0]]=decodeURIComponent((strs[i].split("=")[1]));
38 }
39 }
40 return theRequest;
41 }
42
43
44
45
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标WEB前端JavaScript频道!