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中escape对应的C#解码函数 UrlDecode
Dec 16 Javascript
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
Jul 08 Javascript
常用的JavaScript验证正则表达式汇总
Nov 26 Javascript
js实现的捐赠管理完整实例
Jan 20 Javascript
js实现二级菜单渐隐显示
Nov 03 Javascript
Javascript函数中的arguments.callee用法实例分析
Sep 16 Javascript
浅谈js继承的实现及公有、私有、静态方法的书写
Oct 28 Javascript
微信公众号  提示:Unauthorized API function 问题解决方法
Dec 05 Javascript
Javascript网页抢红包外挂实现分享
Jan 11 Javascript
vue-cli整合vuex的时候,修改actions和mutations,实现热部署的方法
Sep 19 Javascript
关于vue中如何监听数组变化
Apr 28 Vue.js
详解如何使用Node.js实现热重载页面
May 06 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
WordPress判断用户是否登录的代码
2011/03/17 PHP
PHP编程中的常见漏洞和代码实例
2014/08/06 PHP
Laravel框架学习笔记(二)项目实战之模型(Models)
2014/10/15 PHP
PHP集成百度Ueditor 1.4.3
2014/11/23 PHP
thinkPHP商城公告功能开发问题分析
2016/12/01 PHP
如何优雅的使用 laravel 的 validator验证方法
2018/11/11 PHP
静态图片的十一种滤镜效果--不支持Ie7及非IE浏览器。
2007/03/06 Javascript
javascript检测浏览器flash版本的实现代码
2011/12/06 Javascript
JavaScript面向对象之Prototypes和继承
2012/07/12 Javascript
ajax处理php返回json数据的实例代码
2013/01/24 Javascript
javascript浏览器窗口之间传递数据的方法
2015/01/20 Javascript
使用pjax实现无刷新更改页面url
2015/02/05 Javascript
微信小程序 实现拖拽事件监听实例详解
2016/11/16 Javascript
深入理解vue路由的使用
2017/03/24 Javascript
最基础的vue.js双向绑定操作
2017/08/23 Javascript
JavaScript调用模式与this关键字绑定的关系
2018/04/21 Javascript
简化vuex的状态管理方案的方法
2018/06/02 Javascript
layer.open组件获取弹出层页面变量、函数的实例
2019/09/25 Javascript
layui实现根据table数据判断按钮显示情况的方法
2019/09/26 Javascript
vue router 传参获取不到的解决方式
2019/11/13 Javascript
微信小程序背景音乐开发详解
2019/12/12 Javascript
vue data有值,但是页面{{}} 取不到值的解决
2020/11/09 Javascript
[46:25]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第二局
2016/03/05 DOTA
Python实现对PPT文件进行截图操作的方法
2015/04/28 Python
python快速建立超简单的web服务器的实现方法
2018/02/17 Python
python selenium 弹出框处理的实现
2019/02/26 Python
python 应用之Pycharm 新建模板默认添加编码格式-作者-时间等信息【推荐】
2019/06/17 Python
Python 离线工作环境搭建的方法步骤
2019/07/29 Python
python解析yaml文件过程详解
2019/08/30 Python
Django实现WebSSH操作物理机或虚拟机的方法
2019/11/06 Python
家得宝加拿大家装网上商店:The Home Depot加拿大
2016/08/27 全球购物
关于环保的建议书400字
2014/03/12 职场文书
中国式结婚:司仪主持词(范文)
2019/07/25 职场文书
python爬虫之selenium库的安装及使用教程
2021/05/23 Python
el-form每行显示两列底部按钮居中效果的实现
2022/08/05 HTML / CSS