как программа JavaScript.

бнаружить, что JavaScript или Cookies отключены в браузере пользователя и уведомить его о любой помощи?

 zeion26 мар. 2018 г., 23:08
скрипт, который включает JavaScript
 Ivo Wetzel05 янв. 2011 г., 12:00
Если JavaScript отключен, что запустит скрипт, чтобы обнаружить это?

Ответы на вопрос(7)

Обновление (25.06.18):

Многие из этих постов, в том числе и мои, берут фрагментыModernizr, Все они со временем устареют, когда код Modernizr будет обновлен.

Я думаю, что лучшим ответом на этот вопрос должно быть использование Modernizr напрямую.

if (Modernizr.cookies) {
  // supported
} else {
  // not-supported
}

Оригинальный ответ (5/11/17):

Это взято прямо изModernizr и работает в большем количестве браузеров, чем другие решения в этом посте.

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;
}

я предлагаю подход 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

 Noah Solomon16 июл. 2018 г., 18:33
Я обновил свой ответ, чтобы использовать Modernizr напрямую.
 diachedelic16 апр. 2018 г., 05:05
Это более актуально, чем ответ @Noah Solomon
Решение Вопроса

Для проверки куки вы можете использовать:

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 используйте<noscript> тег с каким-то сообщением внутри

 robjmills05 янв. 2011 г., 15:08
@BalusC - да, надеюсь, это ясно для ОП
 Charles17 авг. 2015 г., 14:50
Это не будет работать с IE с параметром конфиденциальности, установленным наHigh, В этом режимеnavigator.cookieEnabled являетсяtrue ноdocument.cookie всегда пусто Лучше всего удалить первый тест checkCookie ():function checkCookie(){document.cookie="testcookie"; var cookieEnabled=(document.cookie.indexOf("testcookie")!=-1)? true : false; return (cookieEnabled)?true:showCookieFail(); }
 Alex Edwards11 февр. 2014 г., 19:07
Зачем это проверятьtypeof navigator.cookieEnabled=="undefined"? Не будет ли правильно, что navigator.cookieEnabled на самом деле был установлен как ложный тип?
 Vitim.us13 нояб. 2011 г., 21:48
Если testcookie был написан, вы должны удалить его после.
 BalusC05 янв. 2011 г., 13:21
Обратите внимание, что это не будет работать, когда JS отключен :)

Пытаться<noscript>...</noscript> теги это работает частично, чтобы проверить, включен ли JavaScript или нет.

<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>
 Rory O'Kane10 июл. 2013 г., 17:21
<script> в вашем примере это неправильно. Если JavaScript включен, то текст внутри<script> не являетсяотображается как HTML, этовыполненный как программа JavaScript.
/**
* @hasCookies:  Check if cookie's are Enabled
* @param  {none} ''
* @return {BOOLEAN} true|false
*/
function hasCookies() {
return (navigator.cookieEnabled);
}
 besciualex05 апр. 2017 г., 16:02
Этот ответ ерунда. Почему вы используете if (hasCookies ()) вместо if (navigator.cookieEnabled)?
 Zeeshan Hassan Memon07 июн. 2018 г., 22:22
глубоко засахаренный слой :)

if (navigator.cookieEnabled) {
document.write("Cookies Enabled");
} else 
{
document.write("Oops Cookies Not Enabled");
}
Check if Cookies Enabled in Your Browser:  
<br />

а также останавливать выполнение скрипта и возвращать статус файлов cookie.

function IS_Cookies_Enabled(Show_Message, Stop_Script)
{
    if(Show_Message == undefined){
        Show_Message = true;
    }

    if(Stop_Script == undefined){
        Stop_Script = false;
    }


    var Cookie_Status = navigator.cookieEnabled;
    if (!Cookie_Status)
    { 
        document.cookie = "Test";
        Cookie_Status = document.cookie.indexOf("Test") != -1;
        // Delete test cookies
        document.cookie = "Test=1; expires=Thu, 01-Jan-1970 00:00:01 GMT";

    }

    if((!Cookie_Status) && (Show_Message))
    {
        document.getElementsByTagName('body')[0].innerHTML = "<div style='width: 600px; max-width: 100%; margin: 100px auto;'><h1 style='color: red'>Cookies Required</h1><p style='font-size: 18px;'>Cookies are not enabled on your browser. <br>Please enable cookies in your browser preferences to continue.</p><strong>Sylingo</strong>";
    }

    if((!Cookie_Status) && (Stop_Script))
    {
        throw new Error('Cookies is disabled');
    }
    return Cookie_Status;
}

Чтобы использовать это:

IS_Cookies_Enabled(true, true);  // Will stop script and view error message

IS_Cookies_Enabled(true, false);  // Just view error message

$Cookies_Status = IS_Cookies_Enabled(false, false);  // return cookies status

А для проверки JavaScript используйте:

<noscript>
Javascript is not enabled on your browser. 
</noscript>

Ваш ответ на вопрос