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


Posted in Javascript onSeptember 25, 2006

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

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

Post.htm

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

Read.htm

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

利用Cookie.

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

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

Post.htm

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

Read.htm

<script language="javascript" >
function getCookie(name)
{
/*
 *--------------- getCookie(name) -----------------
 * getCookie(name)
 * 功能:取得变量name的值
 * 参数:name,字符串.
 * 实例:alert(getCookie("baobao"));
 *--------------- getCookie(name) -----------------
 */
    var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
    if(arr !=null) return unescape(arr[2]); return null;
}
alert(getCookie("baobao"));
</script>

 URL篇

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

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

Post.htm

<input type="text" name="username">
<input type="text" name="sex">
<input type="button" onclick="Post()" value="Post">
<script language="javascript" >
function Post()
{
    //单个值 Read.htm?username=baobao;
    //多全值 Read.htm?username=baobao&sex=male;
    url = "Read.htm?username="+escape(document.all.username.value);
    url += "&sex=" + escape(document.all.sex.value);
    location.href=url;
}
</script>

Read.htm

<script language="javascript" >
/*
 *--------------- Read.htm -----------------
 * Request[key]
 * 功能:实现ASP的取得URL字符串,Request("AAA")
 * 参数:key,字符串.
 * 实例:alert(Request["AAA"])
 *--------------- Request.htm -----------------
 */
var url=location.search;
var Request = new Object();
if(url.indexOf("?")!=-1)
{
    var str = url.substr(1)  //去掉?号
    strs = str.split("&");
    for(var i=0;i<strs.length;i++)
    {
        Request[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]);
    }
}
alert(Request["username"])
alert(Request["sex"])
</script>

Javascript 相关文章推荐
js异步加载的三种解决方案
Mar 04 Javascript
jquery中show()、hide()和toggle()用法实例
Jan 15 Javascript
Javascript基础教程之数组 array
Jan 18 Javascript
每天一篇javascript学习小结(Array数组)
Nov 11 Javascript
AngularJS中$interval的用法详解
Feb 02 Javascript
基于jQuery实现选项卡效果
Jan 04 Javascript
微信小程序中子页面向父页面传值实例详解
Mar 20 Javascript
fckeditor部署到weblogic出现xml无法读取及样式不能显示问题的解决方法
Mar 24 Javascript
BootStrap 页签切换失效的解决方法
Aug 17 Javascript
jQuery实现锚点向下平滑滚动特效示例
Aug 29 jQuery
AngularJS实现的2048小游戏功能【附源码下载】
Jan 03 Javascript
javascript中floor使用方法总结
Feb 02 Javascript
关于Blog顶部的滚动导航条代码
Sep 25 #Javascript
初学prototype,发个JS接受URL参数的代码
Sep 25 #Javascript
浅谈JavaScript中面向对象技术的模拟
Sep 25 #Javascript
理解JavaScript中的事件
Sep 23 #Javascript
Valerio 发布了 Mootools
Sep 23 #Javascript
prototype.js的Ajax对象
Sep 23 #Javascript
在Javascript中为String对象添加trim,ltrim,rtrim方法
Sep 22 #Javascript
You might like
从康盛产品(discuz)提取出来的模板类
2011/06/28 PHP
PHP里的中文变量说明
2011/07/23 PHP
php+mysqli实现批量替换数据库表前缀的方法
2014/12/29 PHP
PHP中应该避免使用同名变量(拆分临时变量)
2015/04/03 PHP
Zend Framework教程之Autoloading用法详解
2016/03/08 PHP
理解Javascript_15_作用域分配与变量访问规则,再送个闭包
2010/10/20 Javascript
file控件选择上传文件确定后触发的js事件是哪个
2014/03/17 Javascript
IE8中使用javascript动态加载CSS的解决方法
2014/06/17 Javascript
JavaScript中使用Math.floor()方法对数字取整
2015/06/15 Javascript
ECMA5数组的新增方法有哪些及forEach()模仿实现
2015/11/03 Javascript
Jquery左右滑动插件之实现超级炫酷动画效果附源码下载
2015/12/02 Javascript
基于Vuejs框架实现翻页组件
2020/06/29 Javascript
ComboBox(下拉列表框)通过url加载调用远程数据的方法
2017/08/06 Javascript
Thinkjs3新手入门之如何使用静态资源目录
2017/12/06 Javascript
JavaScript调用模式与this关键字绑定的关系
2018/04/21 Javascript
vue通过点击事件读取音频文件的方法
2018/05/30 Javascript
JS中通过url动态获取图片大小的方法小结(两种方法)
2018/10/31 Javascript
node.js中对Event Loop事件循环的理解与应用实例分析
2020/02/14 Javascript
mac下如何将python2.7改为python3
2018/07/13 Python
详解将Django部署到Centos7全攻略
2018/09/26 Python
python实现简单的单变量线性回归方法
2018/11/08 Python
详解Python with/as使用说明
2018/12/13 Python
浅析Python 中几种字符串格式化方法及其比较
2019/07/02 Python
python rsync服务器之间文件夹同步脚本
2019/08/29 Python
解决安装新版PyQt5、PyQT5-tool后打不开并Designer.exe提示no Qt platform plugin的问题
2020/04/24 Python
Python scrapy爬取小说代码案例详解
2020/07/09 Python
如何用Python编写一个电子考勤系统
2021/02/08 Python
纽约的奢华内衣店:Journelle
2016/07/29 全球购物
Nike荷兰官方网站:Nike.com (NL)
2018/04/19 全球购物
缅怀革命先烈演讲稿
2014/05/14 职场文书
公司法人授权委托书范本
2014/09/12 职场文书
幼儿园教研工作总结2015
2015/05/12 职场文书
主持人开场白台词
2015/05/29 职场文书
幼儿园家长心得体会
2016/01/21 职场文书
golang为什么要统一错误处理
2022/04/03 Golang
悬疑名作《朋友游戏》动画无字ED宣传片 新角色公开
2022/04/13 日漫