【问题标题】:Is it possible to check if cookies are enabled with modernizr?是否可以检查是否使用modernizr 启用了cookie?
【发布时间】:2012-02-26 04:15:39
【问题描述】:

我正在研究如何检查浏览器中是否启用了cookies,我找到了很多答案,我什至测试了一些,但在那之后我的一个朋友建议我为此使用Modernizr
我开始搜索,发现很多与 CSS3HTML5 相关的东西,但我不想要,我只是想知道是否有可能检查 cookies 是否启用Modernizr?

【问题讨论】:

    标签: browser cookies modernizr


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      以下代码复制自http://sveinbjorn.org/cookiecheck

      function are_cookies_enabled()
      {
          var cookieEnabled = (navigator.cookieEnabled) ? true : false;
      
          if (typeof navigator.cookieEnabled == "undefined" && !cookieEnabled)
          { 
              document.cookie="testcookie";
              cookieEnabled = (document.cookie.indexOf("testcookie") != -1) ? true : false;
          }
          return (cookieEnabled);
      }
      

      【讨论】:

      • 与此相关,这两种方案中哪一种在性能上会更好?
      • 好吧,上面概述的仅使用 javascript 的方法几乎是轻量级的。
      • 小心这个...navigator.cookieEnabled在IE9中总是返回true
      【解决方案3】:

      对这个问题的直接回答是“是的!”它是内置的

      示例代码:

      if (Modernizr.cookies == false) {
      
          alert('Please enable cookies');    
      }
      else { 
          // do something with cookies
      }
      

      您还可以使用 css 类 .cookies.no-cookies 来显示/隐藏一个面板,告诉用户他们需要启用 cookie。

      .cookies #noCookies
      {
          display: none;
      }
      
      <div id='#noCookies'>
         This site requires cookies! Please turn them on already!
      </div>
      

      (这个 .cookies 类被 Modernizr 添加到 &lt;body&gt; 标签中)。

      注意:如果您正在创建 Modernizr 的自定义版本,cookies 选项目前在“非核心检测”部分下“隐藏”。

      【讨论】:

        【解决方案4】:

        PHP 的另一种方式

        HTML/PHP:

        <?php
          session_start();
          $_SESSION['cook'] = 1;
          echo "<img src=\"cookcheck.php\">";
        ?>
        

        PHP-cookcheck.php:

         <?php
             session_start();
        
             if ($_SESSION['cook'] !== 1) 
                                     { $image="/nocookmsg.png"; }    # Cookies NOT Enabled
                                       else { $image="/blank.png"; } # Cookies Enabled
        
             $img=imageCreateFromPNG($image);   # Create Image
             header("Content-type: image/png"); # Send Header
             imagePNG($image);                  # Send Image
         ?>
        

        【讨论】:

          猜你喜欢
          • 2011-10-03
          • 2020-03-12
          • 1970-01-01
          • 2011-04-02
          • 1970-01-01
          • 1970-01-01
          • 2014-07-25
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多