JS实现HTML静态页传值的方法
JS实现HTML静态页传值的方法
此处使用JS方式实现静态页之间值传递,其实很简单,废话不多说,见代码,先看index.html页代码,如下:
在body标签之间 加此行代码
<form action=”a.html?d1=123&d2=你好” method=”post” name=”f1″ id=”f1″>
<input type=”submit” name=”s1″ id=”s1″ value=”提交”/>
</form>
然后,我我们新建a.html新页,同样在body标签之间加此行代码,如下:
<script type=”text/javascript”>
var tmpArr;
var QueryString;
var URL = document.location.toString();
if(URL.lastIndexOf(“?”)!=-1){
QueryString= URL.substring(URL.lastIndexOf(“?”)+1,URL.length);
tmpArr=QueryString.split(“&”);
for (i=0;i<=tmpArr.length – 1;i++) {
document.write(“参数为:” + tmpArr[i] + “<br/>”);
}
}
else{
QueryString = “”;
}
</script>
一些其它的JS静态页传值方法和实例:
一: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 = “www.abc.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 =”www.abc.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指向父窗口.这样可以访问父窗口的对象.
<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打开的窗口.不能跨域.
转载请注明:JS实现HTML静态页传值的方法 - 前端开发-武方博
JS实现HTML静态页传值的方法的更多相关文章
- JS魔法堂:定义页面的Dispose方法——[before]unload事件启示录
前言 最近实施的同事报障,说用户审批流程后直接关闭浏览器,操作十余次后系统就报用户会话数超过上限,咨询4A同事后得知登陆后需要显式调用登出API才能清理4A端,否则必然会超出会话上限. 即使在页面 ...
- 基于PHP生成静态页的实现方法
t1.php 复制代码 代码如下: <?php// 方法一根据模版生成静态页面// replaceTemplateString函数用于替换模板中指定字符串function replaceTemp ...
- springMVC下jsp引用外部js,css等静态资源的解决方法
直入主题. 1. web.xml对springMVC配置如下: <servlet> <description>Spring MVC配置</description> ...
- 关于js返回上一页的实现方法
以前在提交表单的时候,如果提交出错返回的时候信息内容全没了,我不知道要怎么保存,就开始了那种最愚蠢的做法,将填写的数据设置到session中,让后取出来用,不过没有试成功,总是有错,无意之中在我那本j ...
- Node.js + gulp 合并静态页模版,文件更新自动热重载。浏览器可预览
github地址:https://github.com/Liaozhenting/template 使用的是ejs的语法.其实你用什么文件后缀都可以,都是按ejs来解析. 模板文件放在componen ...
- js返回上一页的实现方法
下面是常用代码: <a href="<a href="javascript :history.back(-1)">返回上一页</a> < ...
- ASP.NET MVC创建静态页
1.在MVC下新建一个类:StaticPageHelper public class StaticPageHelper { /// <summary> /// 根据View视图生成静态页面 ...
- Ext JS 4 老特征:statics 静态的变量和方法
l 一.静态的变量和静态的方法 [译文原创Learning Ext JS 4 第51页] Statics的方法只属于类本身,而不属于任何一个实例,这就决定了我们是在定义类的内部来用statics方 ...
- javascript静态页面传值的三种方法分享
一:JavaScript静态页面值传递之URL篇能过URL进行传值.把要传递的信息接在URL上.Post.htm 复制代码 代码如下: <input type="text" ...
随机推荐
- sqlserver临时启用和关闭约束
select 'ALTER TABLE [' + b.name + '] NOCHECK CONSTRAINT ' + a.name +';' as 禁用约束 from sysobje ...
- php变量的几种写法
一.最简单的 $str = 'Hello World!'; 二.来个变种 $str = 'good'; $good = 'test'; $test = 'Hello World!'; echo $$$ ...
- js 实现单行文本滚动效果
js 代码如下: /***************滚动场次开始*****************/ function ScrollText(content, btnPrevious, btnNext, ...
- Java Hour 58 Java Virtual Machine
每每谈到Java Virtual Machine, 你必须意识到这个有三种意思: 1 一个抽象的指南 2 一个具体的实现 3 一个运行时的实例 JVM 的生命周期 每个运行时JVM 实例都是为一个特定 ...
- 如何在多模型的情况下进行EF6的结构迁移
所谓多模型就是在一个数据库中包含两个不同模型,或者换句话说就是两个不同DbContext的数据都放到同一个数据库中.这里的多模型不是指多租户的数据库(有谁知道EF很好处理多租户数据库的方案,可以联系我 ...
- Gym 100637F F. The Pool for Lucky Ones
F. The Pool for Lucky Ones Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/gym/10 ...
- vb.net三层实现登录例子
看三层已经很长时间了,中间有经过了期末考试.回家等等琐事,寒假开学的我已经回想不起什么事三层了,经过了三四天的重新复习,再加上查看各期师哥师姐的博客,终于,自己完成了C#视频中的登录小例子,下面就和大 ...
- Kali Linux 2016.2初体验使用总结
Kali Linux 2016.2初体验使用总结 Kali Linux官方于8月30日发布Kali Linux 2016的第二个版本Kali Linux 2016.2.该版本距离Kali Linux ...
- 不容易系列之(4)——考新郎[HDU2049]
不容易系列之(4)——考新郎 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)To ...
- android 屏幕截取,pull到pc端
1.当需要截取手机屏幕时,进行批命令点击,截取adb pull到电脑端,或者进行接口上传到服务器. GetScreen.bat @ECHO OFF :: read config.cfg SETLOCA ...