一: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打开的窗口.不能跨域.
浙公网安备 33010602011771号