J2EE社區

          茍有恒,何必三更起五更眠;
          最無益,只怕一日曝十日寒.
          posts - 241, comments - 318, trackbacks - 0, articles - 16

          javascript 增,刪,查,改 cookies

          Posted on 2010-04-13 09:11 xcp 閱讀(353) 評論(0)  編輯  收藏 所屬分類: Javascript
          <script>

          //寫cookies函數 作者:翟振凱
          function SetCookie(name,value)//兩個參數,一個是cookie的名子,一個是值
          {
              var Days = 30; //此 cookie 將被保存 30 天
              var exp  = new Date();    //new Date("December 31, 9998");
              exp.setTime(exp.getTime() + Days*24*60*60*1000);
              document.cookie = name + "="+ escape (value) + ";expires=" + exp.toGMTString();
          }
          function getCookie(name)//取cookies函數       
          {
              var arr = document.cookie.match(new RegExp("(^| )"+name+"=([^;]*)(;|$)"));
               if(arr != null) return unescape(arr[2]); return null;

          }
          function delCookie(name)//刪除cookie
          {
              var exp = new Date();
              exp.setTime(exp.getTime() - 1);
              var cval=getCookie(name);
              if(cval!=null) document.cookie= name + "="+cval+";expires="+exp.toGMTString();
          }



          SetCookie ("xiaoqi", "3")
          alert(getCookie('xiaoqi'));
          </script>

          一個非常實用的javascript讀寫Cookie函數

          一個非常實用的javascript讀寫Cookie函數 
          function  GetCookieVal(offset)
          //獲得Cookie解碼后的值
          {
          var  endstr  =  documents.cookie.indexOf  (";",  offset);
          if  (endstr  ==  -1)
          endstr  =  documents.cookie.length;
          return  unescape(documents.cookie.substring(offset,  endstr));
          }
          function  SetCookie(name,  value)
          //設定Cookie值
          {
          var  expdate  =  new  Date();
          var  argv  =  SetCookie.arguments;
          var  argc  =  SetCookie.arguments.length;
          var  expires  =  (argc  >  2)  ?  argv[2]  :  null;
          var  path  =  (argc  >  3)  ?  argv[3]  :  null;
          var  domain  =  (argc  >  4)  ?  argv[4]  :  null;
          var  secure  =  (argc  >  5)  ?  argv[5]  :  false;
          if(expires!=null)  expdate.setTime(expdate.getTime()  +  (  expires  *  1000  ));
          documents.cookie  =  name  +  "="  +  escape  (value)  +((expires  ==  null)  ?  ""  :  (";  expires="+  expdate.toGMTString()))
          +((path  ==  null)  ?  ""  :  (";  path="  +  path))  +((domain  ==  null)  ?  ""  :  (";  domain="  +  domain))
          +((secure  ==  true)  ?  ";  secure"  :  "");
          }
          function  DelCookie(name)
          //刪除Cookie
          {
          var  exp  =  new  Date();
          exp.setTime  (exp.getTime()  -  1);
          var  cval  =  GetCookie  (name);
          documents.cookie  =  name  +  "="  +  cval  +  ";  expires="+  exp.toGMTString();
          }
          function  GetCookie(name)
          //獲得Cookie的原始值
          {
          var  arg  =  name  +  "=";
          var  alen  =  arg.length;
          var  clen  =  documents.cookie.length;
          var  i  =  0;
          while  (i  <  clen)
          {
          var  j  =  i  +  alen;
          if  (documents.cookie.substring(i,  j)  ==  arg)
          return  GetCookieVal  (j);
          i  =  documents.cookie.indexOf("  ",  i)  +  1;
          if  (i  ==  0)  break;
          }
          return  null;
          }


          <SCRIPT  language="javascript">
          <!--
          function  openpopup(){
          url="popup.htm"
          window.open("gonggao.htm","gonggao","width=260,height=212,left=200,top=0")
          }

          function  get_cookie(Name)  {
          var  search  =  Name  +  "="
          var  returnvalue  =  "";
          if  (documents.cookie.length  >  0)  {
          offset  =  documents.cookie.indexOf(search)
          if  (offset  !=  -1)  {
          offset  +=  search.length
          end  =  documents.cookie.indexOf(";",  offset);
          if  (end  ==  -1)
          end  =  documents.cookie.length;
          returnvalue=unescape(documents.cookie.substring(offset,  end))
          }
          }
          return  returnvalue;
          }

          function  helpor_net(){
          if  (get_cookie('popped')==''){
          openpopup()
          documents.cookie="popped=yes"
          }
          }
          helpor_net()
          //-->
          </SCRIPT>


          如果點了確定,只要不清cookie,以后訪問都不會再提示,如果不點確定則每次都會提示。放在js文件里,全站包含

          <SCRIPT LANGUAGE="JavaScript">
          <!--
          var the_cookie = document.cookie;
          var broken_cookie = the_cookie.split(":");
          var the_visiteraccepted = unescape(broken_cookie[1]);
          //
          if (the_visiteraccepted=="undefined"){
                  var tmp=confirm('中國人何時何地。');
                  if(tmp==false){
                          window.close();
                  }else{
                          var the_visiteraccepted = 1;        
                  var the_cookie = "ILoveChina=visiteraccepted:" + escape(the_visiteraccepted);                                
                  document.cookie = the_cookie;
                  }
          }
          //-->
          </SCRIPT>


          1. Cookie的兼容性問題

          Cookie的格式有2個不同的版本,第一個版本,我們稱為Cookie Version 0,是最初由Netscape公司制定的,也被幾乎所有的瀏覽器支持。而較新的版本,Cookie Version 1,則是根據RFC 2109文檔制定的。為了確保兼容性,JAVA規定,前面所提到的涉及Cookie的操作都是針對舊版本的Cookie進行的。而新版本的Cookie目前還不被Javax.servlet.http.Cookie包所支持。

          2. Cookie的內容

          同樣的 Cookie的內容的字符限制針對不同的Cookie版本也有不同。在Cookie Version 0中,某些特殊的字符,例如:空格,方括號,圓括號,等于號(=),逗號,雙引號,斜杠,問號,@符號,冒號,分號都不能作為Cookie的內容。這也就是為什么我們在例子中設定Cookie的內容為"Test_Content"的原因。

          雖然在Cookie Version 1規定中放寬了限制,可以使用這些字符,但是考慮到新版本的Cookie規范目前仍然沒有為所有的瀏覽器所支持,因而為保險起見,我們應該在Cookie的內容中盡量避免使用這些字符

          http://www.hq-poly.com/news/read.asp?id=137



          名稱: ?4C.ESL | .↗Evon
          口號: 遇到新問題?先要尋找一個方案乄而不是創造一個方案こ
          mail: 聯系我


          主站蜘蛛池模板: 和龙市| 遵义县| 桐庐县| 城市| 呼图壁县| 玛纳斯县| 和政县| 京山县| 长治市| 登封市| 汉川市| 南和县| 万盛区| 沭阳县| 天峻县| 辛集市| 花垣县| 柞水县| 尼木县| 岐山县| 马公市| 恩施市| 嘉兴市| 明光市| 栾川县| 稻城县| 乡城县| 霸州市| 和平县| 南投县| 东港市| 陈巴尔虎旗| 富阳市| 临清市| 平谷区| 会昌县| 饶平县| 永春县| 珲春市| 松原市| 伊春市|