1、通过URL传递参数
(1)url传递说明
url带不带参数的问题,由来已久,和提交方式有关,当用get方法,那么url就有参数。但是url的长度受限制,最大是1K的大小;当用post方法提交,那么参数就被放在了post的方法体里面。像登录,修改密码等,都是post提交,这样不会暴露个人隐私信息。即使表单提交不涉及隐私的信息,但是如果要提交一个被添了很多内容的textarea里面的内容,比如内容超过了1K,get就会罢工,不能完成这个操作。而必须用post。post方法,在url里面不放置任何东西,传递的东西都在方法体里面。
(2)url传递方法
方法一:正则分析法
function getQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");//会乱码 // var r = window.location.search.substr(1).match(reg); // if (r != null) return unescape(r[2]); return null; //不乱码 var result = window.location.search.substr(1).match(reg); return result?decodeURIComponent(result[2]):null;}
调用
alert(GetQueryString("参数名1"));alert(GetQueryString("参数名2"));alert(GetQueryString("参数名3"));
2、sessionStorage与localStorage
Web Storage实际上由两部分组成:sessionStorage与localStorage。
sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储。
localStorage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的。
userData
语法:
XML <Prefix: CustomTag ID=sID STYLE="behavior:url('#default#userData')" />
HTML <ELEMENT STYLE="behavior:url('#default#userData')" ID=sID>
Scripting object .style.behavior = "url('#default#userData')"
object .addBehavior ("#default#userData")
属性:
expires 设置或者获取 userData behavior 保存数据的失效日期。
XMLDocument 获取 XML 的引用。
方法:
getAttribute() 获取指定的属性值。
load(object) 从 userData 存储区载入存储的对象数据。
removeAttribute() 移除对象的指定属性。
save(object) 将对象数据存储到一个 userData 存储区。
setAttribute() 设置指定的属性值。
localStorage
方法:
if(window.localStorage){ alert('This browser supports localStorage');}else{ alert('This browser does NOT support localStorage');}
存储数据的方法就是直接给window.localStorage添加一个属性,例如:window.localStorage.a 或者 window.localStorage["a"]。它的读取、写、删除操作方法很简单,是以键值对的方式存在的,如下:
localStorage.getItem(key):获取指定key本地存储的值
localStorage.setItem(key,value):将value存储到key字段
localStorage.removeItem(key):删除指定key本地存储的值
localStorage.a = 3;//设置a为"3"localStorage["a"] = "sfsf";//设置a为"sfsf",覆盖上面的值localStorage.setItem("b","isaac");//设置b为"isaac"var a1 = localStorage["a"];//获取a的值var a2 = localStorage.a;//获取a的值var b = localStorage.getItem("b");//获取b的值localStorage.removeItem("c");//清除c的值
这里最推荐使用的自然是getItem()和setItem(),清除键值对使用removeItem()。如果希望一次性清除所有的键值对,可以使用clear()。另外,HTML5还提供了一个key()方法,可以在不知道有哪些键值的时候使用,如下:
var storage = window.localStorage;function showStorage(){ for(var i=0;i