大家好,我是小C:
我们在做一些网站需要传值交互,最近我就遇到了这问题,如果用H5的本地存储,IE8以下是不能支持的,但是官方说到IE8及以上就支持,但是某些版本还是存在问题。所以我们来看看下面两种方法吧!
第一种方法:url传值(就像可以通过超链接的href属性传值是一样的)
举例:
var Id = "1";
var name = "lili";
window.location.href = 'two.html?userId=' +Id + "&name=" + name;
那么在two.html中该怎么接收数据呢
function getQueryString( name ) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg); //获取url中"?"符后的字符串并正则匹配
var context = "";
if (r != null)
context = r[2];
reg = null;
r = null;
return context == null || context == "" || context == "undefined" ? "" : context;
}
//获取Url中中文参数的方法
function getQueryUrlString(name) {
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
var r = window.location.search.substr(1).match(reg);
if(r != null) {
return decodeURI(r[2]);
}
return "请选择";
}
$("#s").click(function(){
var userId = getQueryString('Id');
var dialogId = getQueryString('name');
alert(Id);
alert(name);
})
二:cookie传值(这个跟H5的本地存储的使用方法其实差不了多少。)
$(function(){
var data = {
id: "1",
name: "dingding",
age: 20
}
$.cookie('data',JSON.stringify(data));
window.location = "two.html";
})
切记:这里一定要把data对象通过方法JSON.stringify()方法序列化成字符串。因为,cookie只能传字符串
那么,在two.html中该如和取值呢
取值比较简单,唯一需要切记的就是从cookie中取到的是字符串类型的数据,不能直接使用,需要用JSON.parse()方法处理一下变成对象
具体如下
$(function(){
var data = $.cookie("data");
var m = JSON.parse(data);
console.log(m.id)//数据的使用
})
有不足的地方,请多多指教。