一:JavaScript静态页面值传递之URL篇

能过URL进行传值.把要传递的信息接在URL上.

例子:

  1 参数传出页面Post.htm—>
  2  
  3  
  4  
  5 <input type="text" name="username">
  6  
  7 <input type="text" name="sex">
  8  
  9 <input type="button" value="Post">
 10  
 11 <script language="javascript" >
 12  
 13 function Post()
 14  
 15 {
 16  
 17   //单个值 Read.htm?username=baobao;
 18  
 19   //多全值 Read.htm?username=baobao&sex=male;
 20  
 21   url = "Read.htm?username="+escape(document.all.username.value);
 22  
 23   url += "&sex=" + escape(document.all.sex.value);
 24  
 25   location.href=url;
 26  
 27 }
 28  
 29 </script>
 30  
 31  
 32  
 33 参数接收页面Read.htm—>
 34  
 35  
 36  
 37 <script language="javascript" >
 38  
 39 /*
 40  
 41 *--------------- Read.htm -----------------
 42  
 43 * Request[key]
 44  
 45 * 功能:实现ASP的取得URL字符串,Request("AAA")
 46  
 47 * 参数:key,字符串.
 48  
 49 * 实例:alert(Request["AAA"])
 50  
 51 *--------------- Request.htm -----------------
 52  
 53 */
 54  
 55 var url=location.search;
 56  
 57 var Request = new Object();
 58  
 59 if(url.indexOf("?")!=-1)
 60  
 61 {
 62  
 63   var str = url.substr(1) //去掉?号
 64  
 65   strs = str.split("&");
 66  
 67   for(var i=0;i<strs.length;i++)
 68  
 69   {
 70  
 71      Request[strs[i ].split("=")[0]]=unescape(strs[ i].split("=")[1]);
 72  
 73   }
 74  
 75 }
 76  
 77 alert(Request["username"])
 78  
 79 alert(Request["sex"])
 80  
 81 </script><script language="JavaScript">
 82  
 83 <!--
 84  
 85 function Request(strName)
 86  
 87 {
 88  
 89 var strHref = "www.abc.com/index.htm?a=1&b=1&c=测试测试";
 90  
 91 var intPos = strHref.indexOf("?");
 92  
 93 var strRight = strHref.substr(intPos + 1);
 94  
 95 var arrTmp = strRight.split("&");
 96  
 97 for(var i = 0; i < arrTmp.length; i++)
 98  
 99 {
100  
101 var arrTemp = arrTmp[i ].split("=");
102  
103 if(arrTemp[0].toUpperCase() == strName.toUpperCase()) return arrTemp[1];
104  
105 }
106  
107 return "";
108  
109 }
110  
111 alert(Request("a"));
112  
113 alert(Request("b"));
114  
115 alert(Request("c"));
116  
117 //-->
118  
119 </script>
120  
121 <script>
122  
123 String.prototype.getQuery = function(name)
124  
125 {
126  
127   var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
128  
129   var r = this.substr(this.indexOf("?")+1).match(reg);
130  
131   if (r!=null) return unescape(r[2]); return null;
132  
133 }
134  
135 var str ="www.abc.com/index.htm?a=1&b=1&c=测试测试";
136  
137 alert(str.getQuery("a"));
138  
139 alert(str.getQuery("b"));
140  
141 alert(str.getQuery("c"));
142  
143 </script>
144  
145  

 

优点:取值方便.可以跨域. 缺点:值长度有限制

 

二:JavaScript静态页面值传递之Cookie篇

Cookie是浏览器存储少量命名数据.

它与某个特定的网页或网站关联在一起.

Cookie用来给浏览器提供内存,

以便脚本和服务器程序可以在一个页面中使用另一个页面的输入数据.

 1 参数传出页面Post.htm—>
 2  
 3  
 4  
 5 <input type="text" name="txt1">
 6  
 7 <input type="button" value="Post">
 8  
 9 <script language="javascript" >
10  
11 function setCookie(name,value)
12  
13 {
14  
15 /*
16  
17 *--------------- setCookie(name,value) -----------------
18  
19 * setCookie(name,value)
20  
21 * 功能:设置得变量name的值
22  
23 * 参数:name,字符串;value,字符串.
24  
25 * 实例:setCookie('username','baobao')
26  
27 *--------------- setCookie(name,value) -----------------
28  
29 */
30  
31   var Days = 30; //此 cookie 将被保存 30 天
32  
33   var exp = new Date();
34  
35   exp.setTime(exp.getTime() + Days*24*60*60*1000);
36  
37   document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
38  
39   location.href = "Read.htm"; //接收页面.
40  
41 }
42  
43 </script>
44  
45  
46  
47 参数接收页面Read.htm—>
48  
49  
50  
51 <script language="javascript" >
52  
53 function getCookie(name)
54  
55 {
56  
57 /*
58  
59 *--------------- getCookie(name) -----------------
60  
61 * getCookie(name)
62  
63 * 功能:取得变量name的值
64  
65 * 参数:name,字符串.
66  
67 * 实例:alert(getCookie("baobao"));
68  
69 *--------------- getCookie(name) -----------------
70  
71 */
72  
73   var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
74  
75   if(arr !=null) return unescape(arr[2]); return null;
76  
77 }
78  
79 alert(getCookie("baobao"));
80  
81 </script>

优点:可以在同源内的任意网页内访问.生命期可以设置. 缺点:值长度有限制.

三:JavaScript静态页面值传递之Window.open篇

这两窗口之间存在着关系.父窗口parent.htm打开子窗口son.htm

子窗口可以通过window.opener指向父窗口.这样可以访问父窗口的对象.

 1 <input type=text name=maintext>
 2  
 3 <input type=button value="Open">
 4  
 5 Read.htm
 6  
 7 <script language="javascript" >
 8  
 9 //window.open打开的窗口.
10  
11 //利用opener指向父窗口.
12  
13 var parentText = window.opener.document.all.maintext.value;
14  
15 alert(parentText);
16  
17 </script>

优点:取值方便.只要window.opener指向父窗口,就可以访问所有对象.不仅可以访问值,还可以访问父窗口的方法.值长度无限制.
缺点:两窗口要存在着关系.就是利用window.open打开的窗口.不能跨域.

posted on 2012-07-05 13:35  杨斐_Feil  阅读(338)  评论(0)    收藏  举报