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 相关文章推荐
xtree.js 代码
Mar 13 Javascript
一个JS翻页效果
Jul 23 Javascript
js弹窗代码 可以指定弹出间隔
Jul 03 Javascript
再论Javascript下字符串连接的性能
Mar 05 Javascript
Jquery.Form 异步提交表单的简单实例
Mar 03 Javascript
javascript 操作符(~、&amp;、|、^、)使用案例
Dec 31 Javascript
jQuery DOM插入节点操作指南
Mar 03 Javascript
JavaScript常用函数工具集:lao-utils
Mar 01 Javascript
node.js缺少mysql模块运行报错的解决方法
Nov 13 Javascript
微信小程序模板(template)使用详解
Jan 31 Javascript
vue3.0中的双向数据绑定方法及优缺点
Aug 01 Javascript
js仿360开机效果
Dec 26 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
域名查询代码公布
2006/10/09 PHP
CodeIgniter框架中_remap()使用方法2例
2014/03/10 PHP
smarty模板局部缓存方法使用示例
2014/06/17 PHP
PHP7之Mongodb API使用详解
2015/12/26 PHP
PHP流Streams、包装器wrapper概念与用法实例详解
2017/11/17 PHP
PHP的mysqli_sqlstate()函数讲解
2019/01/23 PHP
Javascript操作select方法大全[新增、修改、删除、选中、清空、判断存在等]
2008/09/26 Javascript
测试JavaScript字符串处理性能的代码
2009/12/07 Javascript
JavaScript获取表单enctype属性的方法
2015/04/02 Javascript
javascript中SetInterval与setTimeout的定时器用法
2015/08/24 Javascript
Radio 单选JS动态添加的选项onchange事件无效的解决方法
2016/12/12 Javascript
JS三目运算(三元运算)方法详解
2017/03/01 Javascript
在Vue组件中使用 TypeScript的方法
2018/02/28 Javascript
JS实现选项卡效果的代码实例
2019/05/20 Javascript
Node.js+ELK日志规范的实现
2019/05/23 Javascript
node.js中fs文件系统模块的使用方法实例详解
2020/02/13 Javascript
jQuery+ajax实现用户登录验证
2020/09/13 jQuery
python定向爬取淘宝商品价格
2018/02/27 Python
Python3的socket使用方法详解
2020/02/18 Python
关于python3.7安装matplotlib始终无法成功的问题的解决
2020/07/28 Python
PyTorch中的拷贝与就地操作详解
2020/12/09 Python
美国二手奢侈品寄售网站:TheRealReal
2016/10/29 全球购物
英国综合网上购物商城:The Hut
2018/07/03 全球购物
乐高奥地利官方商店:LEGO Shop AT
2019/07/16 全球购物
技能竞赛活动方案
2014/02/21 职场文书
爱护花草树木的标语
2014/06/11 职场文书
三八活动策划方案
2014/08/17 职场文书
反腐倡廉警示教育活动心得体会
2014/09/04 职场文书
2014年工程师工作总结
2014/11/25 职场文书
2015学校六五普法工作总结
2015/04/22 职场文书
北京爱情故事观后感
2015/06/12 职场文书
关于运动会的宣传稿
2015/07/23 职场文书
2015年小学远程教育工作总结
2015/07/28 职场文书
2016年乡镇综治宣传月活动总结
2016/03/16 职场文书
十大必看国产动漫排名,魁拔上线,第二曾在日本播出
2022/03/18 国漫
pt-archiver 主键自增
2022/04/26 MySQL