Помощь Предупреждение, если JS отключен

Тема в разделе "DLE", создана пользователем skyman, 20 ноя 2009.

Информация :
Актуальная версия DataLife Engine 11.1
( Final Release v.11.1 | Скачать DataLife Engine | Скачать 11.1 demo )
Нужно ли обновляться | Как обновиться | Изменения в шаблонах
> Нет русских символов <
[Приватная тема DLE (Все подробности в ЛС к модератору раздела)]

Версии 10.0 и ниже - уязвимы!

Локализации | F.A.Q. | Внешний вид
Правила раздела | Правила форума
Обсуждение хайда карается баном!
В каждом сообщении указывайте версию DLE, которого они касаются!
Статус темы:
Закрыта.
Модераторы: killoff
  1. skyman

    skyman Постоялец

    Регистр.:
    21 июн 2007
    Сообщения:
    127
    Симпатии:
    24
    На одной станице нужно сделать предупреждение, если в браузере выключен JS, но чтобы выводило только предупреждение, без остальной инфы.

    Т.е. примерно так:
    <noscript>Внимание! У вас отключен JavaScript!</noscript>

    Но если для той инфы, что нужно скрыть, делать через <noscript style=display:none" или visibility:hidden, то, соответственно, нужно будет повторно копировать блок, для тех, у кого js включен.

    Вопрос: можно как-то попроще сделать, без лишнего кода, ну и чтобы кроссбраузерно было?
     
  2. FL@SH

    FL@SH Читатель

    Заблокирован
    Регистр.:
    20 июл 2008
    Сообщения:
    193
    Симпатии:
    25
    HTML:
    
    <html>
    
     <head>
      <script language="javascript">
       function check_js() {
         document.getElementById("check_js").innerHTML = "";
         document.getElementById("check_js").style.display = "none";
       }
      </script>
     </head>
    
    <body onload="check_js()">
      <div id="check_js">У вас выключен JavaScript! Убейтесь головой апцтену</div>
    </body>
    
    Если JS выключен - надпись останется, если JS включен - надпись скроется
     
    skyman нравится это.
  3. skyman

    skyman Постоялец

    Регистр.:
    21 июн 2007
    Сообщения:
    127
    Симпатии:
    24
    За альтернативу noscript конечно спасибо, но основная проблема не решена.
    Приведу пример:
    HTML:
    <script language="javascript">
       function check_js() {
         document.getElementById("check_js").innerHTML = "";
         document.getElementById("check_js").style.display = "none";
       }
      </script>
     </head>
    <body onload="check_js()">
      <div id="check_js">У вас выключен JavaScript! Убейтесь головой апцтену</div>
      <div>текст + скрипт</div>
    </body>
    Так вот, что нужно сделать, чтобы без JS не выводилось:
    HTML:
    <div>текст + скрипт</div>
     
  4. FL@SH

    FL@SH Читатель

    Заблокирован
    Регистр.:
    20 июл 2008
    Сообщения:
    193
    Симпатии:
    25
    ТОгда вообще никак. php ещё не научился определять, включены ли JavaScript в браузере пользователя
     
  5. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    Можно применить редирект.
    Сначала к примеру грузится index.php, на ней стоит чекер js (любой, хоть тот же установщик кук), перезагружаем страницу(как угодно) и смотрим.
    Была ли перезагружена странице (если на редирект), стоит ли куки.
     
  6. FL@SH

    FL@SH Читатель

    Заблокирован
    Регистр.:
    20 июл 2008
    Сообщения:
    193
    Симпатии:
    25
    и как к этому гугль отнесётся?
     
  7. tostrss

    tostrss

    Регистр.:
    16 окт 2007
    Сообщения:
    771
    Симпатии:
    217
    А причем тут гугол? Эту схему я много где видел, где на js ставится кука, а из пхп (при перезагрузке или запросе другой страницы) просто проверяется наличие этой куки.
    Как к этому отнесутся поисковики, я честно говоря хз. Надо бы потестить.
     
  8. skyman

    skyman Постоялец

    Регистр.:
    21 июн 2007
    Сообщения:
    127
    Симпатии:
    24
    На одном из форумов нашел слежующее:
    Можно по подробней, что и куда нужно написать, чтобы работало.
     
  9. skyman

    skyman Постоялец

    Регистр.:
    21 июн 2007
    Сообщения:
    127
    Симпатии:
    24
    Разобрался, применил банальный css.

    HTML:
    <script language="javascript">
       function check_js() {
         document.getElementById("check_js").innerHTML = "";
         document.getElementById("check_js").style.display = "none";
       }
      </script>
    <noscript>
    <style type="text/css">
    #hidden
    {
        display:none;
    }
    </style>
    </noscript>
     </head>
    <body onload="check_js()">
      <div id="check_js">Внимание! У вас отключен JavaScript! <br />Для отображения страницы, вам понадобится включить поддержку JavaScript в настройках браузера.</div>
      <div id="hidden">текст + скрипт</div>
    </body>
    Т.е. если JS отключен - выводит только предупреждение.
    А если включен - то <div id="hidden">текст + скрипт</div>
     
Статус темы:
Закрыта.