У меня есть фрагмент кода ниже, где отображается сообщение, если javascript отключен:

<noscript style='color: red'><img src="Images/warning-2.fw.png" alt="Javascript Warning" id="warningImage" name="warningSymbol"/> In order to use this application without any problems, you must have javascript enabled</noscript>

Теперь сообщение отображается на странице noscript.php, поэтому я сделал его экстернализованным, используя include (), чтобы сделать include( noscript ), и я включил это во все свои скрипты php как так:

Text.php (пример)

include('noscript')

//rest of page code

В настоящий момент происходит то, что если javascript выключен, он отображает сообщение javascript, но также отображает сброс кода, поэтому он выводит все функции страницы.

Что я хочу сделать, так это то, что если javascript отключен, я хочу, чтобы он отображал сообщение, но не остальной код ниже, я просто хочу, чтобы появилось сообщение javascript. Только когда снова будет включен javascript, пользователь сможет увидеть правильную страницу, на которой показаны ее функции.

Но как я могу это сделать?

1
Manixman 7 Янв 2013 в 07:00
1
Вы действительно хотите использовать обратные кавычки вместо разделителей строк? Вам, вероятно, следует использовать include('noscript.php');.
 – 
Waleed Khan
7 Янв 2013 в 07:02
Извините, это была ошибка вставки на SO
 – 
Manixman
7 Янв 2013 в 07:21

1 ответ

Лучший ответ

Самый простой способ - просто поместить весь код на странице в скрытый элемент, например:

<body>
   <noscript>...</noscript>
   <div id="js">
      ...code here...

#js будет display: none.

Затем у вас может быть простой скрипт внизу страницы:

document.getElementById('js').style.display = 'block';

Вы также можете загрузить весь контент с помощью ajax, но это было бы излишним. Веб-сайты довольно часто показывают все, даже когда требуется JS (например, Twitter).

2
Explosion Pills 7 Янв 2013 в 07:03
Согласен, но как вы думаете, js лучше всего использовать в функции window.onload или в виде однострочного кода?
 – 
Samuel Cook
7 Янв 2013 в 07:04
Либо поместите его в document.ready, либо прямо перед </body> - последнее имеет тенденцию к предпочтению в настоящее время.
 – 
Explosion Pills
7 Янв 2013 в 07:04
Итак, вы говорите, что код в noscript.php должен быть вставлен на главную страницу, или я могу включить include('noscript.php) в ... код здесь ...
 – 
Manixman
7 Янв 2013 в 07:26
include нужно делать в php-коде, а не в html, но это не совсем важно, как вы это делаете.
 – 
Explosion Pills
7 Янв 2013 в 07:28