2016-04-29 31 views
1
var ShopCookie = {} 
ShopCookie.addc = function createCookie(name,value,days=30) { 
    if (days) { 
     var date = new Date(); 
     date.setTime(date.getTime()+(days*24*60*60*1000)); 
     var expires = "; expires="+date.toGMTString(); 
    } 
    else var expires = ""; 
    document.cookie = name+"="+value+expires+"; path=/"; 
} 

ShopCookie.addc('cookie1','Mytext'); 

我有這段代碼,它在FireFox和Chrome中很棒。但歌劇,EDGE和IE什麼都不做!我不能在歌劇和互聯網瀏覽器中設置cookie

回答

1

函數參數聲明中的語法days=30是新的ES6功能,它還不是到處都支持。

你可以回退到的默認參數的老式:

var ShopCookie = {} 
ShopCookie.addc = function createCookie(name,value,days) {  
    // if days argument not passed, then default it to 30 days 
    if (arguments.length < 3) { 
     days = 30; 
    } 
    if (days) { 
     var date = new Date(); 
     date.setTime(date.getTime()+(days*24*60*60*1000)); 
     var expires = "; expires="+date.toGMTString(); 
    } 
    else var expires = ""; 
    document.cookie = name+"="+value+expires+"; path=/"; 
} 

ShopCookie.addc('cookie1','Mytext'); 

僅供參考,您應該看到在調試控制檯,告訴你到底是什麼語法的瀏覽器不喜歡的錯誤。只要你的代碼不工作,你就會一直在那裏看。

+0

謝謝,我現在就試試吧 –

+0

是的,問題出在那裏。 TY –