2015-06-05 2 views
-1

Я видел несколько сообщений о желании сделать что-то подобное, но я не понимаю, почему мой код не работает. Я пытаюсь убедиться, что пользователи, которые посещают страницу, имеют javascript. Если отключено, я хочу скрыть весь контент и отобразить простую страницу с сообщением о невозможности отображения главной страницы без javascript.Скрытие/отображение содержимого, включенного или отключенного javascript

У меня есть следующий:

<html> 
    <head><title>my site</title> 
    <noscript><style type="text/css">site {display:none;} </style></noscript> 
    </head> 
    <body onload="hideDiv()"> 
    <div id="noscriptmsg">You need to have javascript enabled in order to view this site.</div> 
    <script type="text/javascript">document.getElementById("noscriptmsg").style.display = 'none';</script> 
    </body> 
    <body> 
    <div class="site"> 
    <!--content --> 
    </div> 
    </body> 
</html> 

В настоящее время это показывает правильный яваскрипт с поддержкой страницы, но совершенно пустой JavaScript-инвалидами страницы. Что может вызвать это?

+0

Ваш селектор класса отсутствует период. Должно быть '.site {display: none;}', Также не уверен, что тег noscript должен быть в голове. –

+1

'body onload =" hideDiv() "' зависит от присутствия Javascript. –

+0

@DavidTansey, в этом суть. Если javascript отключен, это не будет выполняться, а 'div' должен показать. – Tom

ответ

1

Почему бы не использовать сборку в noscript в одном body тэгом:

<html> 
    <head><title>my site</title> 
    </head> 
    <body> 
    <noscript> 
     <style type="text/css"> 
      #site {display:none;} 
     </style> 
     <div id="noscriptmsg"> 
     You need to have javascript enabled in order to view this site. 
     </div> 
    </noscript> 

    <div id="site"> 
    </div> 
    </body> 
</html> 
+1

@ChristopherMarshall, только что заметил, что спасибо за обновление – Tom

+0

Я не думал об этом! Благодаря :) – raoul

0

Похоже, в OnLoad тела вы пытаетесь вызвать метод hideDiv()

Во-первых, я рекомендовал бы переместить свой сценарий тег

<html> 
    <head><title>my site</title> 
    <noscript><style type="text/css">.site {display:none;} </style></noscript> 
    <script type="text/javascript"> 
// to the head tag 
// and define the hideDiv() method 
function hideDiv() { 
     document.getElementById("noscriptmsg").style.display = 'none'; 
} 
</script> 
    </head> 
    <body onload="hideDiv()"> 
    <div id="noscriptmsg">You need to have javascript enabled in order to view this site.</div> 
    <div class="site"> 
    <!--content --> 
    </div> 
    </body> 
</html> 

и удалить лишние теги тела. Вы можете использовать css для отображения первого div (одного с уведомлением) со 100% шириной и высотой 100%. Кроме того, кто-то указал, что вам не хватает селектора классов css.

+0

Вы хотите иметь тег перед? – raoul

+0

Да, это должно было быть скопировано там. Oops ... –

Смежные вопросы