zoukankan      html  css  js  c++  java
  • js 判断js函数、变量是否存在 JS保存和删除cookie操作,判断cookie是否存在的方法

    //是否存在指定函数
    function isExitsFunction(funcName) {
        try {
            if (typeof(eval(funcName)) == "function") {
                return true;
            }
        } catch(e) {}
        return false;
    }
    //是否存在指定变量
    function isExitsVariable(variableName) {
        try {
            if (typeof(variableName) == "undefined") {
                //alert("value is undefined");
                return false;
            } else {
                //alert("value is true");
                return true;
            }
        } catch(e) {}
        return false;
    }

    有时我们需要用cookie保存用户名,记录登录状态,如何正确判断该机用户cookie是否存在呢?不能简单使用a!=”这样的写法


     a=getCookie("username3");
     c_start=document.cookie.indexOf("username3=");
     if(c_start == -1){
      $("#login_form").show();
         $("#logined").hide();
     }
     else{
      $("#login_form").hide();
         $("#logined").show();
         $("#ustr").html(a);
     }
     


    正确方法是:判断是否存在名为username3的cookie,使用document.cookie.indexOf(“username3=”)来判断,如果返回值是-1,表示不存在。

    JS保存、删除cookie操作

    用js保存、删除cookie操作比较方便,不用在程序里面写,改起来也容易,比较全的用js保存、删除cookie操作的方法如下:

    复制代码 代码如下:


    <script language=javascript>
     //获得coolie 的值
    function cookie(name){   
       var cookieArray=document.cookie.split("; "); //得到分割的cookie名值对   
       var cookie=new Object();   
       for (var i=0;i<cookieArray.length;i++){   
          var arr=cookieArray[i].split("=");       //将名和值分开   
          if(arr[0]==name)return unescape(arr[1]); //如果是指定的cookie,则返回它的值   
       }
       return "";
    }

    function delCookie(name)//删除cookie
    {
       document.cookie = name+"=;expires="+(new Date(0)).toGMTString();
    }

    function getCookie(objName){//获取指定名称的cookie的值
        var arrStr = document.cookie.split("; ");
        for(var i = 0;i < arrStr.length;i ++){
            var temp = arrStr[i].split("=");
            if(temp[0] == objName) return unescape(temp[1]);
       }
    }

    function addCookie(objName,objValue,objHours){      //添加cookie
        var str = objName + "=" + escape(objValue);
        if(objHours > 0){                               //为时不设定过期时间,浏览器关闭时cookie自动消失
            var date = new Date();
            var ms = objHours*3600*1000;
            date.setTime(date.getTime() + ms);
            str += "; expires=" + date.toGMTString();
       }
       document.cookie = str;
    }

    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();
    }
    </script>

  • 相关阅读:
    PHP基础学习笔记(一)
    安装wampserver之后,浏览器中输入localhost页面显示IIS7解决办法
    HTML5常识总结(一)
    AngularJs中的服务
    AngularJs中的directives(指令part1)
    Happy Number——LeetCode
    Binary Tree Zigzag Level Order Traversal——LeetCode
    Construct Binary Tree from Preorder and Inorder Traversal——LeetCode
    Construct Binary Tree from Inorder and Postorder Traversal——LeetCode
    Convert Sorted Array to Binary Search Tree——LeetCode
  • 原文地址:https://www.cnblogs.com/opret/p/4439748.html
Copyright © 2011-2022 走看看