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实现的真正的iframe高度自适应(兼容IE,FF,Opera)
Mar 07 Javascript
两种方法实现文本框输入内容提示消失
Mar 17 Javascript
判断一个变量是数组Array类型的方法
Sep 16 Javascript
使用JS获取当前地理位置方法汇总
Dec 18 Javascript
浅谈jQuery绑定事件会叠加的解决方法和心得总结
Oct 26 Javascript
基于Three.js插件制作360度全景图
Nov 29 Javascript
vue之数据交互实例代码
Jun 20 Javascript
基于vue-ssr的静态网站生成器VuePress 初体验
Apr 17 Javascript
vue-cli脚手架搭建的项目去除eslint验证的方法
Sep 29 Javascript
ES6的解构赋值实例详解
May 06 Javascript
express启用https使用小记
May 21 Javascript
在vue中使用vant TreeSelect分类选择组件操作
Nov 02 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
Javascript &amp; DHTML 实例编程(教程)(三)初级实例篇1—上传文件控件实例
2007/06/02 Javascript
JQuery为textarea添加maxlength属性的代码
2010/04/07 Javascript
js客户端快捷键管理类的较完整实现和应用
2010/06/08 Javascript
利用javascript实现web页面中指定区域打印
2013/10/30 Javascript
javascript设置金额样式转换保留两位小数示例代码
2013/12/04 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
2013/12/13 Javascript
javascript使用for循环批量注册的事件不能正确获取索引值的解决方法
2014/12/20 Javascript
jQuery+AJAX实现网页无刷新上传
2015/02/22 Javascript
easyui中combotree循环获取父节点至根节点并输出路径实现方法
2016/11/10 Javascript
vue对storejs获取的数据进行处理时遇到的几种问题小结
2018/03/20 Javascript
使用D3.js构建实时图形的示例代码
2018/08/28 Javascript
JS实现的input选择图片本地预览功能示例
2018/08/29 Javascript
详解easyui 切换主题皮肤
2019/04/04 Javascript
jQuery 移除事件的方法
2020/06/20 jQuery
JS call()及apply()方法使用实例汇总
2020/07/11 Javascript
Python代理抓取并验证使用多线程实现
2013/05/03 Python
使用Python进行稳定可靠的文件操作详解
2013/12/31 Python
Python写的Discuz7.2版faq.php注入漏洞工具
2014/08/06 Python
wxPython框架类和面板类的使用实例
2014/09/28 Python
numpy使用fromstring创建矩阵的实例
2018/06/15 Python
win7+Python3.5下scrapy的安装方法
2018/07/31 Python
matplotlib.pyplot绘图显示控制方法
2019/01/15 Python
Django REST框架创建一个简单的Api实例讲解
2019/11/05 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
2021/01/12 Python
英国领先的奢侈品零售商之一:CRUISE
2016/12/02 全球购物
serialVersionUID具有什么样的特征
2014/02/20 面试题
中专毕业生的自我鉴定
2013/12/01 职场文书
英语专业学生个人求职信范文
2014/01/06 职场文书
英语生日邀请函
2014/01/23 职场文书
保护环境演讲稿
2014/05/10 职场文书
电子专业毕业生自荐信
2014/05/25 职场文书
2014年艾滋病防治工作总结
2014/12/10 职场文书
周末问候语大全
2015/11/10 职场文书
Vue接口封装的完整步骤记录
2021/05/14 Vue.js
Python OpenCV 图像平移的实现示例
2021/06/04 Python
解析redis hash应用场景和常用命令
2021/08/04 Redis