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 相关文章推荐
几个有趣的Javascript Hack
Jul 24 Javascript
基于jQuery的合并表格中相同文本的相邻单元格的代码
Apr 06 Javascript
JQuery1.6 使用方法三
Nov 23 Javascript
基于JavaScript实现 获取鼠标点击位置坐标的方法
Apr 12 Javascript
JavaScript实现按Ctrl键打开新页面
Sep 04 Javascript
node.js中的fs.futimes方法使用说明
Dec 17 Javascript
简介JavaScript中strike()方法的使用
Jun 08 Javascript
MVVM模式中ViewModel和View、Model有什么区别?
Jun 19 Javascript
jQuery学习笔记之Ajax用法实例详解
Dec 01 Javascript
基于BootStrap Metronic开发框架经验小结【一】框架总览及菜单模块的处理
May 12 Javascript
基于JS实现的随机数字抽签实例
Dec 08 Javascript
jQuery实现的淡入淡出图片轮播效果示例
Aug 29 jQuery
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
php 运行效率总结(提示程序速度)
2009/11/26 PHP
约瑟夫环问题的PHP实现 使用PHP数组内部指针操作函数
2010/10/12 PHP
浅析php中json_encode()和json_decode()
2014/05/25 PHP
php输入数据统一类实例
2015/02/23 PHP
php实现多城市切换特效
2015/08/09 PHP
PHP数组编码gbk与utf8互相转换的两种方法
2016/09/01 PHP
Yii框架弹出窗口组件CJuiDialog用法分析
2017/01/07 PHP
PHP后门隐藏的一些技巧总结
2020/11/04 PHP
经常用的图片在容器中的水平垂直居中实例
2007/06/10 Javascript
JS解密入门 最终变量劫持
2008/06/25 Javascript
jquery 新手学习常见问题解决方法
2010/04/18 Javascript
七个很有意思的PHP函数
2014/05/12 Javascript
Javascript vue.js表格分页,ajax异步加载数据
2016/10/24 Javascript
原生JS获取元素集合的子元素宽度实例
2016/12/14 Javascript
微信小程序 动态传参实例详解
2017/04/27 Javascript
Vue使用vue-cli创建项目
2017/09/01 Javascript
vue实现文章内容过长点击阅读全文功能的实例
2017/12/28 Javascript
Vue最新防抖方案(必看篇)
2019/10/30 Javascript
[01:00:53]2018DOTA2亚洲邀请赛3月29日 小组赛B组 iG VS Secret
2018/03/30 DOTA
python win32 简单操作方法
2017/05/25 Python
Python爬虫实例_利用百度地图API批量获取城市所有的POI点
2018/01/10 Python
python表格存取的方法
2018/03/07 Python
对python字典元素的添加与修改方法详解
2018/07/06 Python
python爬虫中采集中遇到的问题整理
2020/11/27 Python
在Ubuntu中安装并配置Pycharm教程的实现方法
2021/01/06 Python
万得城电器土耳其网站:欧洲第一大电子产品零售商
2016/10/07 全球购物
Agoda西班牙:全球特价酒店预订
2017/06/03 全球购物
Revolution Beauty美国官网:英国知名化妆品网站
2018/07/23 全球购物
类成员函数的重载、覆盖和隐藏区别
2016/01/27 面试题
XML文档定义有几种形式?它们之间有何本质区别?解析XML文档有哪几种方式?
2016/01/12 面试题
应届生幼儿园求职信
2013/11/12 职场文书
学校安全管理制度
2015/08/06 职场文书
寒假致家长的一封信
2015/10/10 职场文书
68句权威创业名言
2019/08/26 职场文书
java设计模式--原型模式详解
2021/07/21 Java/Android
Linux7.6二进制安装Mysql8.0.27详细操作步骤
2021/11/27 MySQL