博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

js实现页面a向页面b传参的方法

Posted on 2016-05-12 19:07  人生梦想起飞  阅读(4421)  评论(0编辑  收藏  举报

方法一:使用HTML5本地化存储(localStorage) 组件(本地最大能存储5M数据)localStorage是本地永久存储数据,是cookie的优化

方法二:使用cookie将数据存放在客户的浏览器 (最大存储2M数据)

方法三:使用url传参 (将要传递的数据保存为一个存储变量,然后传给url)方法如下;

a.html

var app = {};
app.list = '123'
app.test = '1';

window.location.href = "b.html?name="+app;

如何参数是对象的话要先转化字符JSON.stringify(app),在b页面获取的话再转换化为对象

b.html

接收url传递过来的参数

function GetRequest() {   
   var url = location.search; //获取url中"?"符后的字串   
   var theRequest = new Object();   
   if (url.indexOf("?") != -1) {   
      var str = url.substr(1);   
      strs = str.split("&");   
      for(var i = 0; i < strs.length; i ++) {   
         theRequest[strs[i].split("=")[0]]=unescape(strs[i].split("=")[1]);   
      }   
   }   
   return theRequest;   
}    
console.log(JSON.parse(GetRequest().name).list)

各个浏览器对URL的长度有限制:

1.     IE浏览器对URL的长度现限制为2048字节(自己测试最多为2047字节)。

2.     360极速浏览器对URL的长度限制为2118字节。

3.     Firefox(Browser)对URL的长度限制为65536字节。

4.     Safari(Browser)对URL的长度限制为80000字节。

5.     Opera(Browser)对URL的长度限制为190000字节。

6.     Google(chrome)对URL的长度限制为8182字节。

这里,我只测试过IE浏览器和360极速浏览器,其它浏览器来自于网上的资料。

另外提醒一下大家,URL中,一个汉字通过不同的编码方式大小也不一样。