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 相关文章推荐
JS模拟面向对象全解(二、类型与赋值)
Jul 13 Javascript
jquery div 居中技巧应用介绍
Nov 24 Javascript
基于HTML5上使用iScroll实现下拉刷新,上拉加载更多
May 21 Javascript
Ubuntu系统下Angularjs开发环境安装
Sep 01 Javascript
详谈jQuery Ajax(load,post,get,ajax)的用法
Mar 02 Javascript
web前端vue之vuex单独一文件使用方式实例详解
Jan 11 Javascript
Angular动画实现的2种方式以及添加购物车动画实例代码
Aug 09 Javascript
Vue.js样式动态绑定实现小结
Jan 24 Javascript
vue列表单项展开收缩功能之this.$refs的详解
May 05 Javascript
Node.js控制台彩色输出的方法与原理实例详解
Dec 01 Javascript
纯JS实现五子棋游戏
May 28 Javascript
bootstrap-closable-tab可实现关闭的tab标签页插件
Aug 09 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
Linux下PHP连接Oracle数据库
2014/08/20 PHP
php数组键值用法实例分析
2015/02/27 PHP
php使用str_shuffle()函数生成随机字符串的方法分析
2017/02/17 PHP
thinkPHP5框架auth权限控制类与用法示例
2018/06/12 PHP
JS继承--原型链继承和类式继承
2013/04/08 Javascript
通过正则表达式实现表单验证是否为中文
2014/02/18 Javascript
JQuery实现table行折叠效果以JSON做数据源
2014/05/26 Javascript
js onmousewheel事件多次触发问题解决方法
2014/10/17 Javascript
JQuery判断radio(单选框)是否选中和获取选中值方法总结
2015/04/15 Javascript
jQuery中$.extend()用法实例
2015/06/24 Javascript
js原型链与继承解析(初体验)
2016/05/09 Javascript
原生JS京东轮播图代码
2017/03/22 Javascript
利用jquery去掉时光轴头尾部线条的方法实例
2017/06/16 jQuery
利用node.js+mongodb如何搭建一个简单登录注册的功能详解
2017/07/30 Javascript
基于Vue框架vux组件库实现上拉刷新功能
2017/11/28 Javascript
Vue利用History记录上一页面的数据方法实例
2018/11/02 Javascript
js实现图片上传即时显示效果
2019/09/30 Javascript
Vue打包后访问静态资源路径问题
2019/11/08 Javascript
在vue-cli3中使用axios获取本地json操作
2020/07/30 Javascript
如何利用javascript接收json信息并进行处理
2020/08/06 Javascript
[01:26]DOTA2荣耀之路2:iG,China
2018/05/24 DOTA
[50:45]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第一场
2018/04/10 DOTA
[50:11]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第三场
2018/04/09 DOTA
[23:18]Spirit vs Liquid Supermajor小组赛A组 BO3 第二场 6.2
2018/06/03 DOTA
Python字符串格式化的方法(两种)
2017/09/19 Python
使用python将时间转换为指定的格式方法
2018/11/12 Python
如何在Django中添加没有微秒的 DateTimeField 属性详解
2019/01/30 Python
美国高端婴童品牌:Hanna Andersson
2016/10/30 全球购物
荷兰男士时尚网上商店:Suitable
2017/12/25 全球购物
La Senza官网:北美顶尖性感内衣品牌
2018/08/03 全球购物
大学生的自我鉴定范文
2014/01/21 职场文书
班组安全员工作职责
2014/02/01 职场文书
学校教研活动总结
2014/07/02 职场文书
国庆促销活动总结
2014/08/29 职场文书
党员个人总结自评
2015/02/14 职场文书
HTML基础详解(下)
2021/10/16 HTML / CSS