2011-01-05 5 views

答えて

43

function checkCookie(){ 
    var cookieEnabled = navigator.cookieEnabled; 
    if (!cookieEnabled){ 
     document.cookie = "testcookie"; 
     cookieEnabled = document.cookie.indexOf("testcookie")!=-1; 
    } 
    return cookieEnabled || showCookieFail(); 
} 

function showCookieFail(){ 
    // do something here 
} 


// within a window load,dom ready or something like that place your: 
checkCookie(); 

とJavaScriptが

+3

JSが無効になっているときにこれが実行されないことに注意してください:) – BalusC

+1

@BalusC - うまくいけば、OP – robjmills

+5

にクリアされます。 –

-3

内のメッセージのいくつかの種類に<noscript>タグを使用してチェックするためには、それにはJavaScriptが有効になっているかどうかを確認するために、部分的に動作したりしませ<noscript>...</noscript>タグを試してみてください。

<script type="application/javascript"> 
    document.write("This text would be displayed if JavaScript is enabled"); 
</script> 
<noscript> 
    This text would be displayed if JavaScript is not enabled 
</noscript> 
+5

あなたの例の「

8

です。

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

function checkCookie(){ 
    // Quick test if browser has cookieEnabled host property 
    if (navigator.cookieEnabled) return true; 
    // Create cookie 
    document.cookie = "cookietest=1"; 
    var ret = document.cookie.indexOf("cookietest=") != -1; 
    // Delete cookie 
    document.cookie = "cookietest=1; expires=Thu, 01-Jan-1970 00:00:01 GMT"; 
    return ret; 
} 
2

クッキーの検出は、IE 11で動作しなかったので、私はModernizrのアプローチを提案する:

function areCookiesEnabled() { 
    try { 
     document.cookie = 'cookietest=1'; 
     var cookiesEnabled = document.cookie.indexOf('cookietest=') !== -1; 
     document.cookie = 'cookietest=1; expires=Thu, 01-Jan-1970 00:00:01 GMT'; 
     return cookiesEnabled; 
    } catch (e) { 
     return false; 
    } 
} 

https://github.com/Modernizr/Modernizr/blob/5eea7e2a213edc9e83a47b6414d0250468d83471/feature-detects/cookies.js

関連する問題