是否可以检查是否使用modernizr 启用了cookie?

Posted

技术标签:

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

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

【问题讨论】:

【参考方案1】:

查看此网址,希望对您有所帮助:

https://github.com/Modernizr/Modernizr/commit/33f00fbbeb12e92bf24711ea386e722cce6f60cc

【讨论】:

【参考方案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
 ?>

【讨论】:

以上是关于是否可以检查是否使用modernizr 启用了cookie?的主要内容,如果未能解决你的问题,请参考以下文章

Modernizr 只是为了快速检查?

检查父母是不是使用LESS上课

是否可以使用 C# 检查是否启用了硬件虚拟化?

是否可以检查用户是否启用了 PM?

Modernizr.js介绍与使用

Modernizr.js介绍与使用