1. 程式人生 > >原生Js判斷當前頁面是否是第一次開啟

原生Js判斷當前頁面是否是第一次開啟

原理是利用瀏覽器cook來判斷,噹噹前頁面不存在cook時就是第一次開啟

程式碼: 

function Cookie(key,value){
    this.key=key;
    if(value!=null)
    {
        this.value=escape(value);
    }
    this.expiresTime=null;
    this.domain=null;
    this.path="/";
    this.secure=null;
}
Cookie.prototype.setValue=function(value){this.value
=escape(value);} Cookie.prototype.getValue=function(){return (this.value);} Cookie.prototype.setExpiresTime=function(time){this.expiresTime=time;} Cookie.prototype.getExpiresTime=function(){return this.expiresTime;} Cookie.prototype.setDomain=function(domain){this.domain=domain;} Cookie.prototype.getDomain
=function(){return this.domain;} Cookie.prototype.setPath=function(path){this.path=path;} Cookie.prototype.getPath=function(){return this.path;} Cookie.prototype.Write=function(v){ if(v!=null){ this.setValue(v); } var ck=this.key+"="+this.value; if(this.expiresTime!=null){ try
{ ck+=";expires="+this.expiresTime.toUTCString();; } catch(err){ alert("expiresTime引數錯誤"); } } if(this.domain!=null){ ck+=";domain="+this.domain; } if(this.path!=null){ ck+=";path="+this.path; } if(this.secure!=null){ ck+=";secure"; } document.cookie=ck; } Cookie.prototype.Read=function(){ try{ var cks=document.cookie.split("; "); var i=0; for(i=0;i <cks.length;i++){ var ck=cks[i]; var fields=ck.split("="); if(fields[0]==this.key){ this.value=fields[1]; return (this.value); } } return null; } catch(err){ alert("cookie讀取錯誤"); return null; } }
var ck=new Cookie("HasLoaded");  //每個頁面的new CookieHasLoaded不能相同
if(ck.Read()==null){//未載入過,Cookie內容為空
alert("首次開啟頁面");

    //設定儲存時間
var dd = new Date();
    dd = new Date(dd.getYear() + 1900, dd.getMonth(), dd.getDate());
    dd.setDate(dd.getDate() + 365);
    ck.setExpiresTime(dd);

    ck.Write("true");  //設定Cookie。只要IE不關閉,Cookie就一直存在
}
else{//Cookie存在,表示頁面是被重新整理的
alert("頁面重新整理");
}