静态页面的值传递(三部曲)

Window.open篇

这两窗口之间存在着关系.父窗口parent.htm打开子窗口son.htm
子窗口可以通过window.opener指向父窗口.这样可以访问父窗口的对象.

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

Post.htm

1<input name="maintext" type="text"/>
1<input onclick="window.open('Read.htm')" type="button" value="Open"/>

Read.htm

1<script language="javascript">   
2//window.open打开的窗口.   
3//利用opener指向父窗口.    
4var parentText = window.opener.document.all.maintext.value;   
5alert(parentText);   
6</script>

利用Cookie.

Cookie是浏览器存储少量命名数据.
它与某个特定的网页或网站关联在一起.
Cookie用来给浏览器提供内存,
以便脚本和服务器程序可以在一个页面中使用另一个页面的输入数据.

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

Post.htm

1<input name="txt1" type="text"/>
1<input onclick="setCookie('baobao',document.all.txt1.value)" type="button" value="Post"/>
 1<script language="javascript">   
 2function setCookie(name,value)   
 3{   
 4/*   
 5*--------------- setCookie(name,value) -----------------   
 6* setCookie(name,value)   
 7* 功能:设置得变量name的值   
 8* 参数:name,字符串;value,字符串.   
 9* 实例:setCookie('username','baobao')   
10*--------------- setCookie(name,value) -----------------   
11*/    
12var Days = 30;  //此 cookie 将被保存 30 天    
13var exp = new Date();   
14exp.setTime(exp.getTime() + Days*24*60*60*1000);   
15document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();   
16location.href = "Read.htm";  //接收页面.    
17}   
18</script>

Read.htm

 1<script language="javascript">   
 2function getCookie(name)   
 3{   
 4/*   
 5*--------------- getCookie(name) -----------------   
 6* getCookie(name)   
 7* 功能:取得变量name的值   
 8* 参数:name,字符串.   
 9* 实例:alert(getCookie("baobao"));   
10*--------------- getCookie(name) -----------------   
11*/   
12var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));   
13if(arr !=null) return unescape(arr[2]); return null;   
14}   
15alert(getCookie("baobao"));   
16</script>

本新闻共 2 页,当前在第 1 页 1 2

Published At
Categories with 网页设计
Tagged with
comments powered by Disqus