html页面传值的几种方法

1. 利用URL地址栏进行传值

<a href="/pc/buyCenter/leftMenu/myCancelOrder?searchContent=<%=totalOrders.unionOrderNumber%>"><%=order.statusMap[-100]%></a>

接收页面打印

 //获取链接中传过来的searchContent
 var searchContent=publicFun.GetQueryString("searchContent");

获取链接方法

//获取地址栏参数
exports.GetQueryString=function(name){
     var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
     var r = window.location.search.substr(1).match(reg);
     if(r!=null)return  unescape(r[2]); return null;
 };

注意:JS获取URL中参数,支持多参数传值,支持中文

2.利用H5 Web 存储 传值


<h1>利用HTML5 Web 存储 localStorage</h1>
<div onclick="save(1)">添加1</div>
<div onclick="save(2)">添加2</div>
<div onclick="save(3)">添加3</div>
<div onclick="save(4)">添加4</div>
<div onclick="save(5)">添加5</div>
<div onclick="find()">查找</div>
 
<div id="find_result"></div>
 
<script>
if(typeof(Storage)=="undefined")
{
  document.getElementById("result").innerHTML="对不起,您的浏览器不支持 web 存储。";
}
//保存数据  
function save(cp_value){  
	var num = new Object;
    num.cp_keynum ="key_num";  
    num.cp_num_value = cp_value;
    var str = JSON.stringify(num); // 将对象转换为字符串
    localStorage.setItem(num.cp_keynum,str);
    alert("添加成功");
}
 //查找数据  
function find(){  
    var cp_keynum = "key_num";  
    var str = localStorage.getItem(cp_keynum);  
    var find_result = document.getElementById("find_result");
    var num = JSON.parse(str);  
    find_result.innerHTML = cp_keynum + "==" + num.cp_num_value;  
}  
    

接收页面打印

<h1>利用HTML5 Web 存储 localStorage</h1>
<div onclick="find()">查找</div>
<div id="find_result"></div>
<script>
if(typeof(Storage)=="undefined")
{
  document.getElementById("result").innerHTML="对不起,您的浏览器不支持 web 存储。";
}
 
 //查找数据  
function find(){  
    var cp_keynum = "key_num";  
    var str = localStorage.getItem(cp_keynum);  
    var find_result = document.getElementById("find_result");
    var num = JSON.parse(str);  
    find_result.innerHTML = cp_keynum + "==" + num.cp_num_value;  
}  

</script>

3.利用JavaScript Cookie存储 传值

<head>
 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 
<title>无标题文档</title>
<style>
	div{ height: 36px; line-height: 36px; border: #eee solid 1px; margin: 10px;}
</style>
<script>
	
	
//添加 cookie
function cp_add_cookie(num){
setCookie("cp_keynum",num,2);
}
//查找
function cp_seek_cookie(){
var cp_keynum=getCookie("cp_keynum");
var find_result = document.getElementById("find_result2");
find_result.innerHTML = "cp_keynum == " + cp_keynum;  
}
 
 
//设置 cookie 值的函数,创建一个函数用于存储访问者的名字
function setCookie(cname,cvalue,exdays){
	var d = new Date();
	d.setTime(d.getTime()+(exdays*24*60*60*1000));
	var expires = "expires="+d.toGMTString();
	document.cookie = cname+"="+cvalue+"; "+expires;
}
//获取 cookie 值的函数,创建一个函数用户返回指定 cookie 的值
function getCookie(cname){
	var name = cname + "=";
	var ca = document.cookie.split(';');
	for(var i=0; i<ca.length; i++) {
		var c = ca[i].trim();
		if (c.indexOf(name)==0) return c.substring(name.length,c.length);
	}
	return "";
}
 
</script>
</head>
<body>
<h1>利用JavaScript Cookie存储 </h1>
<div onclick="cp_add_cookie(1)">添加1</div>
<div onclick="cp_add_cookie(2)">添加2</div>
<div onclick="cp_add_cookie(3)">添加3</div>
<div onclick="cp_seek_cookie()">查找</div>
<div id="find_result2"></div>
 
</body>

接收页面打印

<head>
 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 
<title>接受数据</title>
<style>
	div{ height: 36px; line-height: 36px; border: #eee solid 1px; margin: 10px;}
</style>
<script>
	
	
//查找 cookie
 
function cp_seek_cookie(){
var cp_keynum=getCookie("cp_keynum");
var find_result = document.getElementById("find_result2");
find_result.innerHTML = "cp_keynum == " + cp_keynum;  
}
 
//获取 cookie 值的函数,创建一个函数用户返回指定 cookie 的值
function getCookie(cname){
	var name = cname + "=";
	var ca = document.cookie.split(';');
	for(var i=0; i<ca.length; i++) {
		var c = ca[i].trim();
		if (c.indexOf(name)==0) return c.substring(name.length,c.length);
	}
	return "";
}
 
</script>
 
</head>
<body>
<h1>利用JavaScript Cookie存储 </h1>
<div onclick="cp_seek_cookie()">查找JavaScript Cookie存储的值</div>
<div id="find_result2"></div>
</body>

4.window.open和window.opener之间传值

window.open可以打开一个新的页面,在新的页面中可以通过window.opener获取父页面的窗口对象,从而可以获取父窗口中的参数。

<button id="open">打开新的页面</button> 
<script> 
  $('#open').click(function () { 
    window.open('./b.html') 
  }) 
</script>

打印页面

<script>
  var content = window.opener.document.getElementById("open").innerHTML;  
  alert(content);  
</script>  

总结:

对于不同的解决方法,都有优缺点

  1. url携带参数
    优点:取值方便,可以跨域,利于页面分享,没有环境限制。
    缺点:url携带参数值的长度有限制.
  2. cookie方式
    优点:可以在同源内的的任意网页中访问,存储数据的周期可以自由设置。
    缺点:有长度限制。
  3. 设置窗口之间的父子关联关系
    优点:取值方便.只要window.opener指向父窗口,就可以访问所有对象.不仅可访 问值,还可以访问父窗口的方法.值长度无限制。
    缺点:两窗口要存在着关系.就是利用window.open打开的窗口。不能跨域。
  4. h5技术,window.localStorage存储数据
    优点:储存空间大,有5M存储空间。
    缺点:不是所有浏览器都支持。

资源参考:http://blog.csdn.net/csdn_ds/article/details/78393564
https://blog.csdn.net/cplvfx/article/details/75009590

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值