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 获取URL的GET参数值的小例子
Apr 18 Javascript
一个字符串反转函数可实现字符串倒序
Sep 15 Javascript
jquery实现的判断倒计时是否结束代码
Feb 05 Javascript
AngularJS下对数组的对比分析
Aug 24 Javascript
浅谈node中的exports与module.exports的关系
Aug 01 Javascript
Vue项目中使用Vux的安装过程
May 01 Javascript
如何根据业务封装自己的功能组件
Apr 19 Javascript
详解iview的checkbox多选框全选时校验问题
Jun 10 Javascript
jQuery-Citys省市区三级菜单联动插件使用详解
Jul 26 jQuery
使用pkg打包ThinkJS项目的方法步骤
Dec 30 Javascript
JavaScript的垃圾回收机制与内存管理
Aug 06 Javascript
vue 中使用print.js导出pdf操作
Nov 13 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
一个改进的UBB类
2006/10/09 PHP
php使用正则表达式进行字符串搜索的方法
2015/03/23 PHP
php实现分页显示
2015/11/03 PHP
最新制作ThinkPHP3.2.3完全开发手册
2015/11/23 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
javascript生成/解析dom的CDATA类型的字段的代码
2007/04/22 Javascript
jquery实现文本框鼠标右击无效以及不能输入的代码
2010/11/05 Javascript
javascript AOP 实现ajax回调函数使用比较方便
2010/11/20 Javascript
js实现的跟随鼠标移动的时钟效果(中英文日期显示)
2011/01/17 Javascript
js禁止页面使用右键(简单示例代码)
2013/11/13 Javascript
Javascript控制div属性动态变化实例分析
2015/10/08 Javascript
下雪了 javascript实现雪花飞舞
2020/08/02 Javascript
JS阻止事件冒泡行为和闭包的方法
2016/06/16 Javascript
EditPlus中的正则表达式 实战(4)
2016/12/15 Javascript
JS实现页面打印(整体、局部)
2017/08/18 Javascript
浅谈vue单一组件下动态修改数据时的全部重渲染
2018/03/01 Javascript
webstorm中vue语法的支持详解
2018/05/09 Javascript
使用D3.js+Vue实现一个简单的柱形图
2018/08/05 Javascript
通过实例学习React中事件节流防抖
2019/06/17 Javascript
javascript导出csv文件(excel)的方法示例
2019/08/25 Javascript
js实现简单的随机点名器
2020/09/17 Javascript
python3使用urllib模块制作网络爬虫
2016/04/08 Python
Python简单实现的代理服务器端口映射功能示例
2018/04/08 Python
python numpy 显示图像阵列的实例
2018/07/02 Python
Pycharm简单使用教程(入门小结)
2019/07/04 Python
Python利用神经网络解决非线性回归问题实例详解
2019/07/19 Python
使用python实现希尔、计数、基数基础排序的代码
2019/12/25 Python
英国知名的皮手套品牌:Dents
2016/11/13 全球购物
三星法国官方网站:Samsung法国
2019/10/31 全球购物
应届毕业生的自我鉴定
2013/11/13 职场文书
个人现实表现材料
2014/02/04 职场文书
驾驶员安全责任书
2014/07/22 职场文书
小学生思想品德评语
2014/12/31 职场文书
2016年国陪研修感言
2015/11/18 职场文书
2016年秋季运动会加油稿
2015/12/21 职场文书
应届生们该怎么书写求职信?
2019/07/05 职场文书