2011-04-09 37 views
0

我看了看周圍很多,而且似乎無法找到任何足夠簡單,我做...jQuery的Cookie的問題

我已經建立了一個網頁,其檢測瀏覽器是目前運行,如果它不是Firefox 4.0,它會顯示一個隱藏的div,並給出警告,說明該頁面最好在Firefox 4.0或更高版本中查看。在該div內是一個隱藏div的按鈕。

我正在尋找一種方法來記住在會話期間單擊此按鈕,以便當用戶單擊我的「主頁」頁面時,他們不會每次都收到相同的消息。

當前代碼:

<head> 
    <script src="js/browsercheck.js"></script> 
    <script type="text/javascript"> 
     // external script "browsercheck.js" checks 
     // which browser/version is being used 
     // check browser and display message if != Firefox 4.0 or > 
     function checkBrowser() { 
      var browser = BrowserDetect.browser; 
      var version = BrowserDetect.version; 
      if (browser == "Firefox") { 
       if (version >= 4) { 
        // do nothing 
       } 
      } else { 
       document.getElementById("coverall").style.visibility="visible"; 
       document.getElementById("browser").innerHTML = browser + " " + version; 
      } 
     } 
     // remove overlay if user commands 
     function removeCoverall() { 
      document.getElementById("coverall").style.visibility="hidden"; 
     } 
    </script> 
</head> 
<body> 
    <div id="coverall" style="visibility:hidden;"> 
     <p>I see you're using <span id="browser"></span>. Please use Firefox.</p> 
     <button type="button" onclick="removeCoverall()">I understand</button> 
    </div> 
</body> 
+0

你在標題中提到了jQuery,但是你根本沒有使用jQuery ......這個問題與jQuery有什麼關係呢? – 2011-04-09 16:27:16

+0

它似乎沒有使用jQuery。但如果你真的是,看看jquery cookies插件:http://plugins.jquery.com/project/Cookie – Talljoe 2011-04-09 16:27:56

回答

1

使用jQuery和cookie plugin,你可以這樣做:

 
function removeCoverall() { 
      $.cookie("user_clicked_ok", "true"); 
      document.getElementById("coverall").style.visibility="hidden"; 
     } 

$(window).ready(function() { 
    if ($.cookie("user_clicked_ok")=="true") {removeCoverall();} 
}); 

更多細節在:http://www.electrictoolbox.com/jquery-cookies/

+0

,看起來像它應該工作,但我很新的JS/jQuery。我只知道基礎知識,出於某種原因,Cookie讓我感到困惑。你介意把它應該如何實施?我似乎無法得到這個工作 – JacobTheDev 2011-04-10 20:51:33

0

removeCoverall功能你可以set a cookie這表明用戶關閉了div並在checkBrowser函數中驗證cookie是否存在之前顯示分割。

0
You seem to have the right idea, you need cookies! YUM! 

JS

function removeCoverall() { 
    var date = new Date(); 
    date.setTime(date.getTime()+(7*24*60*60*1000));// expires in one week 
    document.cookie = 'skipNotify=1;expires='+date.toGMTString()+'; path=/'; 
    document.getElementById("coverall").style.visibility="hidden"; 
} 

現在檢索該Cookie可以在JavaScript困難,但你可以使用PHP!

PHP

function checkBrowser() { 
    <?php if(isset($_COOKIE['skipNotify']))echo'return;';?> 
    var browser = BrowserDetect.browser; 
    var version = BrowserDetect.version; 
    if (browser == "Firefox") { 
     if (version >= 4) { 
      // do nothing 
     } 
    } else { 
     document.getElementById("coverall").style.visibility="visible"; 
     document.getElementById("browser").innerHTML = browser + " " + version; 
    } 
} 

上面的代碼注入return語句,如果用戶有餅乾,所以調用該函數不會做任何事情。

正如其他職位所述,我強烈建議您使用jQuery滿足您的所有JavaScript需求。它非常受歡迎,穩定和有用!我只給出答案,因爲它不使用任何第三方解決方案。