跨静态页面传递json数据
首页 > Html    作者:lininn   2017年9月5日 16:20 星期二   热度:3010°   百度已收录  
时间:2017-9-5 16:20   热度:3010° 

今天又遇到了需要跨静态页面间传递json数据的方法,总结总结,都有其优缺点,

1.利用cookie传值的方法:(注意有缺点,当存储数据比较多的时候就可能出现丢失,取得的cookie为空,所以提前估量数据量


function setCookie(c_name, value, expiredays) {
			var exdate = new Date() ;
			exdate.setDate(exdate.getDate() + expiredays);
			document.cookie = c_name + "=" + escape(value) + ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString())
}

function getCookie(c_name) {
	if(document.cookie.length > 0) {
		c_start = document.cookie.indexOf(c_name + "=") 
		if(c_start != -1) {
			c_start = c_start + c_name.length + 1 
			c_end = document.cookie.indexOf(";", c_start) 
			if(c_end == -1) c_end = document.cookie.length
			return unescape(document.cookie.substring(c_start, c_end))
		}
	}
	return ""
}

var ab = {"name":"1"}
ab = JSON.stringify(ab);

setCookie("acc12", ab)
var a = getCookie("acc12");
console.log(a);
a = JSON.parse(a);
console.log(a[0]);


2.利用html5的localstorage和sessionstorage的方法(缺点:ie兼容性不好9以及9以上,安卓4.0及以上


localStorage.setItem("ning","aa");//设置数据
var a=localStorage.getItem("ning");//提取数据
3.利用jquery,json5和base通过将url传递的值通过编码解码实现数据传递(优点:兼容性较好,缺点:传递数据的值的大小取决于url的量,是url冗长);


发送页面:


 var data = [{"R_EAF_R_LEFTID":"5B2FF1C261F9"}];
var a = JSON5.stringify(data); //(需要引入json5库)
var b = encodeURIComponent(a); // 先进行url编码,将中文字符转码
var c = $.base64.encode(b); // 再进行base64编码(需要引入base64库)
window.location.href = 'b.html?' + c;
接收页面:


var sec = location.href.split('?')[1];
var a = $.base64.decode(sec);
var b = decodeURIComponent(a);
var c = JSON5.parse(b); //得到原json数据
console.log(c);


二维码加载中...
本文作者:lininn      文章标题: 跨静态页面传递json数据
本文地址:?post=19
版权声明:若无注明,本文皆为“覆手为雨”原创,转载请保留文章出处。
分享本文至:
<script>alert('你好')</script>

返回顶部    首页    手机版本    后花园   会员注册   
版权所有:覆手为雨    站长: lininn