web网站中cookie的使用

功能需求:根据IP自动识别当前客户端的省份,在网站下次刷新或进入时记录已识别或更换的省份


实现方法:第一次进入网站时利用ajax请求调用IP地址识别程序,然后将省份放入cookie,每次刷新时判断cookie中是否存在省份,如果存在取该省份,否则调用IP识别程序


源代码如下:
<div class="csqh_nr_bran yglc_list"><h3></h3>
<div align="left" id="cityname" name="cityname">请您就近选择服务网点:</div>
<table border="0" cellpadding="0" cellspacing="5" id="tab_fh" width="99%">
<tbody>
    <tr>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="bj" /><span>北京分行</span></td>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="dl" /><span>大连分行</span></td>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="cc" /><span>长春分行</span></td>
    </tr>
    <tr>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="hlj" /><span>黑龙江分行</span></td>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="sy" /><span>沈阳分行</span></td>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="sh" /><span>上海分行</span></td>
    </tr>
    <tr>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="shz" /><span>苏州分行</span></td>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="xm" /><span>厦门分行</span></td>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="fj" /><span>福州分行</span></td>
    </tr>
    <tr>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="jn" /><span>济南分行</span></td>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="qd" /><span>青岛分行</span></td>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="yt" /><span>烟台分行</span></td>
    </tr>
    <tr>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="wh" /><span>武汉分行</span></td>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="gz" /><span>广州分行</span></td>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="sz" /><span>深圳分行</span></td>
    </tr>
    <tr>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="hk" /><span>海口分行</span></td>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="cq" /><span>重庆分行</span></td>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="km" /><span>昆明分行</span></td>
    </tr>
    <tr>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="sjz" /><span>石家庄分行</span></td>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="ty" /><span>太原分行</span></td>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="tj" /><span>天津分行</span></td>
    </tr>
    <tr>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="nj" /><span>南京分行</span></td>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="hf" /><span>合肥分行</span></td>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="hz" /><span>杭州分行</span></td>
    </tr>
    <tr>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="nb" /><span>宁波分行</span></td>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="zz" /><span>郑州分行</span></td>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="cd" /><span>成都分行</span></td>
    </tr>
    <tr>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="xa" /><span>西安分行</span></td>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="cs" /><span>长沙分行</span></td>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="nn" /><span>南宁分行</span></td>
    </tr>
    <tr>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="nc" /><span>南昌分行</span></td>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="wx" /><span>无锡分行</span></td>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="hhht" /><span>呼和浩特分行</span></td>
    </tr>
    <tr>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="wlmq" /><span>乌鲁木齐分行</span></td>
    <td><input name="radiobranch" οnclick="specSelected(value);" type="radio" value="xg" /><span>香港分行</span></td>
    </tr>
</tbody>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="99%">
<tbody>
    <tr>
    <td align="right"><input name="branchok" οnclick="showSpecBIZ(spec_biz_selected,1);" type="button" value="确定" /></td>
    </tr>
</tbody>
</table>
</div>
<div class="csqh_bot"></div>
</div>
</div>
<div class="black_overlay" id="fade" style="display: none"></div>
<div id="url_a" style="display: none">[pagevisitpath:491283]</div>

<script type=text/javascript>
function getCookieVal (offset) {
  var endstr = document.cookie.indexOf (";", offset);
  var cookstr;
  if (endstr == -1)
  endstr = document.cookie.length;
   
  cookstr = unescape(document.cookie.substring(offset, endstr));

  if(cookstr!=null){
     return cookstr;
  }
}
function GetCookie (name) {
  var arg = name + "=";
  var alen = arg.length;
  var clen = document.cookie.length;
  var i = 0;
  while (i < clen) {
    var j = i + alen;
    if (document.cookie.substring(i, j) == arg)
      return getCookieVal (j);
    i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0)
       break;
  }
  return null;
}
function SetCookie(cookieName,cookieValue,nDays) {
 var today = new Date();
 var expire = new Date();
 if (nDays==null || nDays==0) nDays=1;
 expire.setTime(today.getTime() + 3600000*24*nDays);
 document.cookie = cookieName+"="+escape(cookieValue) + ";path=/;expires="+expire.toGMTString();
}

function SetCookieWithDomain(domain,cookieName,cookieValue,nDays) {
 var today = new Date();
 var expire = new Date();
 if (nDays==null || nDays==0) nDays=1;
 expire.setTime(today.getTime() + 3600000*24*nDays);
 document.cookie = cookieName+"="+escape(cookieValue) + ";path=/;domain=" + domain + ";expires="+expire.toGMTString();
}
function deleteCookie (name){
    var date=new Date();
    var ms= 1 * 1000;
    date.setTime(date.getTime() - ms);
    var str = name+"=no; expires=" + date.toGMTString(); //将过期时间设置为过去来删除一个cookie
    document.cookie=str;
}
var spec_biz_selected;
   $(function(){
       $("#brach_lable").click(function(){
           $("#cssrain").show();
           $("#fade").show();
       })
        if (document.cookie == "")  {
                alert("请打开您的COOKS ,本站点需要cook 支持!");
        return;
    }
        var cebbranchcode = null;
        if(GetCookie('branchcode')!=null){
       cebbranchcode = GetCookie('branchcode');
    }
        if(cebbranchcode!=null){
        $("input[@type=radio][name='radiobranch'][value='" + cebbranchcode + "']").attr("checked",true);
    }
    var cebprovince=null;
    if(GetCookie('province')!=null){
       cebprovince = GetCookie('province');
    }
    if(cebprovince!=null){
         spec_biz_selected=getBranchIdByProv(cebprovince.replace("分行",""));
         showSpecBIZ(spec_biz_selected,1);
    }else{
             getProv();
        }
        
        
   });


//根据客户IP得到其所属的省份
function getProv()
{
$.ajax({
  type:'get',
  cache:false,
  url:'/eportalapply/jsp/ip/ipAddress.jsp',
  success:function(data){
        var province = $.trim(data);
        if("局域"==province||"本机"==province){
         province="北京";
     }
     spec_biz_selected=getBranchIdByProv(province);
     showSpecBIZ(spec_biz_selected,0);
         SetCookie('branchcode',spec_biz_selected,365);
         SetCookie('province',province,365);
  },
  error:function(){}
});
}





function specSelected(prov)
{
   spec_biz_selected=prov;
}

function hideDialog()
{
    $('#cssrain').fadeOut(1500);
    $('#fade').fadeOut(1500);
}
function showSpecBIZ(prov,flag)
{
   if(flag=="1"){
      var fhname = "";
      var val = $("input:radio:checked[name='radiobranch']").val();
      if(val!=null){
        fhname = $("input:radio:checked[name='radiobranch']").parent().find("span").html();
        $("#brach_lable").html(fhname);
      }
      SetCookie('branchcode',val,365);
      SetCookie('province',fhname,365);
   }
   if(prov!=null)
   {   

        var url_aa=$("#url_a").html()
       var strGoUrl=url_aa;
       if(strGoUrl.indexOf("?")>0)
  {
     strGoUrl+="&fh="+prov;
   }else{
    strGoUrl+="?&fh="+prov;

}

       $("#iframe_part").attr("src",strGoUrl);
   }
   hideDialog();
   
}

//根据省份得到分行
function getBranchIdByProv(prov)
{
   if(prov=="北京"){
      return 'bj';
   }else if(prov=="烟台"){
      return 'yt';
   }else if(prov=="天津"){
      return 'tj';
   }else if(prov=="太原"){
      return 'ty';
   }else if(prov=="成都"){
      return 'cd';
   }else if(prov=="青岛"){
      return 'qd';
   }else if(prov=="武汉"){
      return 'wh';
   }else if(prov=="合肥"){
      return 'hf';
   }else if(prov=="局域"||prov=="本机"){
      return 'bj';
   }else{
      return 'zh';
   }
}
</script>


注意事项:设置cookie时中文需要加密,使用encodeURI,使用escape会造成部分固定汉字乱码,例如“局域”,不明原因


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值