javascript静态页面传值的三种方法分享


Posted in Javascript onNovember 12, 2013

一:JavaScript静态页面值传递之URL篇
能过URL进行传值.把要传递的信息接在URL上.
Post.htm

<input type="text" name="username">
<input type="text" name="sex">
<input type="button" 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><script language="JavaScript">
<!--
function Request(strName)
{
var strHref = "3water.com/index.htm?a=1&b=1&c=测试测试";
var intPos = strHref.indexOf("?");
var strRight = strHref.substr(intPos + 1);
var arrTmp = strRight.split("&");
for(var i = 0; i < arrTmp.length; i++)
{
var arrTemp = arrTmp[i ].split("=");
if(arrTemp[0].toUpperCase() == strName.toUpperCase()) return arrTemp[1];
}
return "";
}
alert(Request("a"));
alert(Request("b"));
alert(Request("c"));
//-->
</script>
<script>
String.prototype.getQuery = function(name)
{
var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
var r = this.substr(this.indexOf("?")+1).match(reg);
if (r!=null) return unescape(r[2]); return null;
}
var str ="3water.com/index.htm?a=1&b=1&c=测试测试";
alert(str.getQuery("a"));
alert(str.getQuery("b"));
alert(str.getQuery("c"));
</script>

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

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

<input type="text" name="txt1">
<input type="button" 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>

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

三:JavaScript静态页面值传递之Window.open篇
这两窗口之间存在着关系.父窗口parent.htm打开子窗口son.htm
子窗口可以通过window.opener指向父窗口.这样可以访问父窗口的对象.
Post.htm

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

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

Javascript 相关文章推荐
Jquery Ajax学习实例6 向WebService发出请求,返回DataSet(XML) 异步调用
Mar 18 Javascript
从零开始学习jQuery (八) 插播:jQuery实施方案
Feb 23 Javascript
jQuery中的jQuery()方法用法分析
Dec 27 Javascript
火狐和ie下获取javascript 获取event的方法(推荐)
Nov 26 Javascript
footer定位页面底部(代码分享)
Mar 07 Javascript
Angular 通过注入 $location 获取与修改当前页面URL的实例
May 31 Javascript
浅析Javascript中双等号(==)隐性转换机制
Oct 27 Javascript
vue中在vuex的actions中请求数据实例
Nov 08 Javascript
vue下canvas裁剪图片实例讲解
Apr 16 Javascript
javascript实现电商放大镜效果
Nov 23 Javascript
使用AutoJs实现微信抢红包的代码
Dec 31 Javascript
JavaScript实现点击出现子菜单效果
Feb 08 Javascript
javascript的渐进增强与平稳退化浅谈
Nov 12 #Javascript
JavaScrip实现PHP print_r的数功能(三种方法)
Nov 12 #Javascript
JavaScript中的字符串操作详解
Nov 12 #Javascript
JavaScript简单实现网页回到顶部功能
Nov 12 #Javascript
判定是否原生方法的JS代码
Nov 12 #Javascript
给文字加上着重号的JS代码
Nov 12 #Javascript
深入理解javascript动态插入技术
Nov 12 #Javascript
You might like
别人整理的服务器变量:$_SERVER
2006/10/20 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(七)
2014/06/23 PHP
CodeIgniter实现更改view文件夹路径的方法
2014/07/04 PHP
jQuery操作input type=radio的实现代码
2012/06/14 Javascript
基于dom编程中 动态创建与删除元素的使用
2013/04/17 Javascript
js confirm()方法的使用方法实例
2013/07/13 Javascript
javascript代码运行不出来执行错误的可能情况整理
2013/10/18 Javascript
javascript 闭包详解
2015/02/15 Javascript
JavaScript 不支持 indexof 该如何解决
2016/03/30 Javascript
实例讲解JavaScript的Backbone.js框架中的View视图
2016/05/05 Javascript
jQuery验证插件validate使用详解
2016/05/11 Javascript
JS获取屏幕高度的简单实现代码
2016/05/24 Javascript
js实现放大镜特效
2017/05/18 Javascript
JavaScript实现的原生态兼容IE6可调可控滚动文字功能详解
2017/09/19 Javascript
利用vue组件自定义v-model实现一个Tab组件方法示例
2017/12/06 Javascript
JavaScript创建对象方法实例小结
2018/09/03 Javascript
vue + element-ui的分页问题实现
2018/12/17 Javascript
重命名批处理python脚本
2013/04/05 Python
利用Python的Flask框架来构建一个简单的数字商品支付解决方案
2015/03/31 Python
详细介绍Python中的偏函数
2015/04/27 Python
Python实现PS图像调整颜色梯度效果示例
2018/01/25 Python
python实现决策树分类
2018/08/30 Python
numpy给array增加维度np.newaxis的实例
2018/11/01 Python
Python 多维List创建的问题小结
2019/01/18 Python
对python 通过ssh访问数据库的实例详解
2019/02/19 Python
python中必要的名词解释
2019/11/20 Python
Python __slots__的使用方法
2020/11/15 Python
详解pycharm的python包opencv(cv2)无代码提示问题的解决
2021/01/29 Python
python 实现图片裁剪小工具
2021/02/02 Python
英语翻译系毕业生求职信
2013/09/29 职场文书
先进工作者获奖感言
2014/02/08 职场文书
四风对照检查材料思想汇报
2014/09/20 职场文书
党员争先创优承诺书
2015/01/20 职场文书
团员个人总结
2015/02/26 职场文书
2015年优质护理服务工作总结
2015/04/08 职场文书
Redis6.0搭建集群Redis-cluster的方法
2021/05/08 Redis