地址栏字符串加密解密的问题 参考这个:http://www.weste.net/2006/12-28/16170366142.html 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 JS操作cookies方法![code]//写cookiesfunction setCookie(name,value){var Days = 30;var exp = new Date(); exp.setTime(exp.getTime() + Days*24*60*60*1000);document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();}//读取cookiesfunction getCookie(name){var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");if(arr=document.cookie.match(reg)) return unescape(arr[2]);else return null;}//删除cookiesfunction delCookie(name){var exp = new Date();exp.setTime(exp.getTime() - 1);var cval=getCookie(name);if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString();}//使用示例setCookie("name","hayden");alert(getCookie("name"));如果需要设定自定义过期时间那么把上面的setCookie 函数换成下面两个函数就ok;程序代码function setCookie(name,value,time){var strsec = getsec(time);var exp = new Date();exp.setTime(exp.getTime() + strsec*1);document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();}function getsec(str){ alert(str); var str1=str.substring(1,str.length)*1; var str2=str.substring(0,1); if (str2=="s"){ return str1*1000; }else if (str2=="h"){ return str1*60*60*1000; }else if (str2=="d"){ return str1*24*60*60*1000; }}//这是有设定过期时间的使用示例://s20是代表20秒//h是指小时,如12小时则是:h12//d是天数,30天则:d30//暂时只写了这三种,不知道谁有更好的方法,呵呵setCookie("name","hayden","s20"); <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"><HTML><HEAD><TITLE> New Document </TITLE><meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><META NAME="Generator" CONTENT="EditPlus"><META NAME="Author" CONTENT="zourinet"><META NAME="Keywords" CONTENT=""><META NAME="Description" CONTENT=""></HEAD><BODY><form method="post" action=""><div><script language="vbscript"> Function str2asc(strstr) str2asc = hex(asc(strstr)) End Function Function asc2str(ascasc) asc2str = chr(ascasc) End Function </script><script language="JavaScript">/* <![CDATA[ *//*这里开始时UrlEncode和UrlDecode函数*/ function UrlEncode(str){ var ret=""; var strSpecial="!\"#$%&'()*+,/:;<=>?[]^`{|}~%"; for(var i=0;i<str.length;i++){ var chr = str.charAt(i); var c=str2asc(chr); tt += chr+":"+c+"n"; if(parseInt("0x"+c) > 0x7f){ ret+="%"+c.slice(0,2)+"%"+c.slice(-2); }else{ if(chr==" ") ret+="+"; else if(strSpecial.indexOf(chr)!=-1) ret+="%"+c.toString(16); else ret+=chr; } } return ret; } function UrlDecode(str){ var ret=""; for(var i=0;i<str.length;i++){ var chr = str.charAt(i); if(chr == "+"){ ret+=" "; }else if(chr=="%"){ var asc = str.substring(i+1,i+3); if(parseInt("0x"+asc)>0x7f){ ret+=asc2str(parseInt("0x"+asc+str.substring(i+4,i+6))); i+=5; }else{ ret+=asc2str(parseInt("0x"+asc)); i+=2; } }else{ ret+= chr; } } return ret; } alert(UrlDecode('%C3%C0%C5%AE'));/* ]]> */</script></div></form></BODY></HTML> 换个方式来提交??嘿嘿.....1.htm<form method=get action=2.htm> <input type="text" name='myname'> <input type="button" value=' ok ' onclick="ChangeEncoding(this.form)"> <script>String.prototype.trim=function(reg){ if(reg) return this.replace(reg,""); else return this.replace(/^\s*|\s*$/g,"");}function ChangeEncoding(f){ var querystring=""; var e; for(var i=0;i<f.elements.length;i++) { e=f.elements[i]; if(e.name&&e.value&&e.value.trim()!="") querystring+=e.name+"="+escape(e.value)+"&";//用escape编码.. } if(querystring!="") location=f.action+"?"+querystring.trim(/&$/g);//去掉最后一个& else f.submit();}</script> </form> 2.htm<head> <SCRIPT LANGUAGE="JavaScript"> <!-- function init(){ var myname=""; //接收 myhref=document.location.href; //得到形如:http://www.baidu.com?MyKey=s.h.e&MyType=0 if(myhref.indexOf("?")!=-1){ sz1=myhref.split("?"); //得到形如:http://www.baidu.com 和 MyKey=s.h.e&MyType=0 sz2=sz1[1].split("&"); //得到形如:MyKey=s.h.e 和 MyType=0 for (i=0;i <sz2.length ;i++ ) { if(sz2[i].indexOf("myname=")!=-1){ tmpsz=sz2[i].split("="); myname=tmpsz[1]; } } } myname=String(myname).replace("#",""); //改变表单值 document.form2.myname.value=unescape(myname); //需要unescape来解码.} //--> </SCRIPT> </head> <body onload='javascript:init();'> <form name='form2' method=get action=2.htm> <input type=text name='myname'> <input type=submit value=' ok '> </form> </body> 没有现成的函数吗?还需要自己写?兼容性如何?顺便问下VBSCRIPT和JS之间可以相互调用啊?原来! 请问下,为什么会出现LZ说的那种现象?LZ那儿自己并没有对提交的数据进行编码啊,而且我对2.html的数据进行了解码,用的是楼上的unescape,显然不行,原因是LZ在1.html中对提交的数据并没有escape,我想,应该是HTML默认的当GET的时候就将提交的数据以某种方式进行了编码,现在的问题就是我不知道是那种方式编的码,所以自然也不能解码,高手赐教 get提交有中文时可以先用escape编码,然后目的页面就可以使用unescape解码了可以参考5楼,要不就参考myvicy :http://www.weste.net/2006/12-28/16170366142.html 问题出现在这里 if(sz2[i].indexOf("myname=")!=-1){ tmpsz=sz2[i].split("="); myname=tmpsz[1];2.htm?myname=%C3%C0%C5%AE你要求的就是得到后面的%C3%C0%C5%AE当然就显示%C3%C0%C5%AE 请问下,为什么会出现LZ说的那种现象?LZ那儿自己并没有对提交的数据进行编码啊,而且我对2.html的数据进行了解码,用的是楼上的unescape,显然不行,原因是LZ在1.html中对提交的数据并没有escape,我想,应该是HTML默认的当GET的时候就将提交的数据以某种方式进行了编码,现在的问题就是我不知道是那种方式编的码,所以自然也不能解码,高手赐教 js/jQuery 有办法模拟ctrl操作吗? post提交的问题 请问有好的开源的时间线吗 iframe如何提交到主页面 字符型转换成数字不成功!请教!!!急 这个select如何设置初始选中 如何动态隐藏多个TR? 正则表达式遇到问题了,希望高手解决啊!! 怎么判断一个INPUT在哪个DIV window.open()与post提交?? 这个小效果怎么做? 关于安全性、受信任站点之类的一个问题,总之就是权限问题
JS操作cookies方法!
[code]//写cookies
function setCookie(name,value)
{
var Days = 30;
var exp = new Date();
exp.setTime(exp.getTime() + Days*24*60*60*1000);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
//读取cookies
function getCookie(name)
{
var arr,reg=new RegExp("(^| )"+name+"=([^;]*)(;|$)");
if(arr=document.cookie.match(reg)) return unescape(arr[2]);
else return null;
}
//删除cookies
function delCookie(name)
{
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval=getCookie(name);
if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString();
}
//使用示例
setCookie("name","hayden");
alert(getCookie("name"));
如果需要设定自定义过期时间
那么把上面的setCookie 函数换成下面两个函数就ok;
程序代码
function setCookie(name,value,time){
var strsec = getsec(time);
var exp = new Date();
exp.setTime(exp.getTime() + strsec*1);
document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
}
function getsec(str){
alert(str);
var str1=str.substring(1,str.length)*1;
var str2=str.substring(0,1);
if (str2=="s"){
return str1*1000;
}else if (str2=="h"){
return str1*60*60*1000;
}else if (str2=="d"){
return str1*24*60*60*1000;
}
}
//这是有设定过期时间的使用示例:
//s20是代表20秒
//h是指小时,如12小时则是:h12
//d是天数,30天则:d30
//暂时只写了这三种,不知道谁有更好的方法,呵呵
setCookie("name","hayden","s20");
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="zourinet">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD><BODY>
<form method="post" action="">
<div>
<script language="vbscript">
Function str2asc(strstr)
str2asc = hex(asc(strstr))
End Function
Function asc2str(ascasc)
asc2str = chr(ascasc)
End Function
</script>
<script language="JavaScript">
/* <![CDATA[ */
/*这里开始时UrlEncode和UrlDecode函数*/
function UrlEncode(str){
var ret="";
var strSpecial="!\"#$%&'()*+,/:;<=>?[]^`{|}~%";
for(var i=0;i<str.length;i++){
var chr = str.charAt(i);
var c=str2asc(chr);
tt += chr+":"+c+"n";
if(parseInt("0x"+c) > 0x7f){
ret+="%"+c.slice(0,2)+"%"+c.slice(-2);
}else{
if(chr==" ")
ret+="+";
else if(strSpecial.indexOf(chr)!=-1)
ret+="%"+c.toString(16);
else
ret+=chr;
}
}
return ret;
}
function UrlDecode(str){
var ret="";
for(var i=0;i<str.length;i++){
var chr = str.charAt(i);
if(chr == "+"){
ret+=" ";
}else if(chr=="%"){
var asc = str.substring(i+1,i+3);
if(parseInt("0x"+asc)>0x7f){
ret+=asc2str(parseInt("0x"+asc+str.substring(i+4,i+6)));
i+=5;
}else{
ret+=asc2str(parseInt("0x"+asc));
i+=2;
}
}else{
ret+= chr;
}
}
return ret;
} alert(UrlDecode('%C3%C0%C5%AE'));
/* ]]> */
</script>
</div>
</form>
</BODY>
</HTML>
1.htm
<form method=get action=2.htm>
<input type="text" name='myname'>
<input type="button" value=' ok ' onclick="ChangeEncoding(this.form)">
<script>
String.prototype.trim=function(reg)
{
if(reg)
return this.replace(reg,"");
else
return this.replace(/^\s*|\s*$/g,"");
}
function ChangeEncoding(f)
{
var querystring="";
var e;
for(var i=0;i<f.elements.length;i++)
{
e=f.elements[i];
if(e.name&&e.value&&e.value.trim()!="")
querystring+=e.name+"="+escape(e.value)+"&";//用escape编码..
}
if(querystring!="")
location=f.action+"?"+querystring.trim(/&$/g);//去掉最后一个&
else
f.submit();
}
</script>
</form> 2.htm
<head>
<SCRIPT LANGUAGE="JavaScript">
<!--
function init(){
var myname=""; //接收
myhref=document.location.href; //得到形如:http://www.baidu.com?MyKey=s.h.e&MyType=0
if(myhref.indexOf("?")!=-1){
sz1=myhref.split("?"); //得到形如:http://www.baidu.com 和 MyKey=s.h.e&MyType=0
sz2=sz1[1].split("&"); //得到形如:MyKey=s.h.e 和 MyType=0
for (i=0;i <sz2.length ;i++ )
{
if(sz2[i].indexOf("myname=")!=-1){
tmpsz=sz2[i].split("=");
myname=tmpsz[1];
}
}
}
myname=String(myname).replace("#","");
//改变表单值
document.form2.myname.value=unescape(myname); //需要unescape来解码.
}
//-->
</SCRIPT>
</head>
<body onload='javascript:init();'>
<form name='form2' method=get action=2.htm>
<input type=text name='myname'>
<input type=submit value=' ok '>
</form>
</body>
兼容性如何?顺便问下VBSCRIPT和JS之间可以相互调用啊?原来!
if(sz2[i].indexOf("myname=")!=-1){
tmpsz=sz2[i].split("=");
myname=tmpsz[1];2.htm?myname=%C3%C0%C5%AE
你要求的就是得到后面的%C3%C0%C5%AE
当然就显示%C3%C0%C5%AE