Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   <noscript> ничего не выводит при отключенном javascript в браузере (https://javascript.ru/forum/misc/14914-noscript-nichego-ne-vyvodit-pri-otklyuchennom-javascript-v-brauzere.html)

freerun888 05.02.2011 10:47

<noscript> ничего не выводит при отключенном javascript в браузере
 
Всем привет !
У меня почем-то <noscript> ничего не выводит при отключенном javascript в браузере (пробовал во всех изестных браузерах, результат одинаков,ничего не выводит)

Вот что я хотел вывести:
<html>
<head>
<script type="text/jscript" src="external_script.js">
</script>

<noscript>
Вы не можете просмотреть данную страницу,у вас отключен JavaScript.
</noscript>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title> скрипт</title>
</head>

<body>
<h1>
Вывод при отключении сценариев
</h1>
</body>
</html>

SkyLight 05.02.2011 10:51

А зачем вы его засунули в HEAD?

hacker_007 05.02.2011 11:23

<html>
<head>
<script type="text/jscript" src="external_script.js">
</script>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<title> скрипт</title>
</head>
 <body>
   <noscript>
    Вы не можете просмотреть данную страницу,у вас отключен JavaScript.
   </noscript>
<h1>Вывод при отключении сценариев</h1>
 </body>
</html>

monolithed 05.02.2011 20:21

На самом деле этот элемент хоть и стандартизован, но его применение неформально имеет статус depricated и как следствие в XHTML Strict он запрещен. Также стоит отметить, что раньше содержимое в этом элементе индексировали ПС (может и сейчас тоже, незнаю).

Лучше всего делать так:

<div id="noscript">ВНИМАНИЕ: Ваш браузер не поддерживает работу с JavaScript!</div>

<script type="text/javascript">
document.getElementById('noscript').style.display = 'none';
</script>

Kolyaj 05.02.2011 20:45

Цитата:

Сообщение от monolithed
Лучше всего делать так:

Так будет мигать. Лучше так:

<html id="nojs">
<head>
    <script type="text/javascript">document.documentElement.id = 'js';</script>
    <style type="text/css">
        .nojs { display: none; }
        #nojs .nojs { display: block; }
    </style>
</head>
<body>
<div class="nojs">Ваш браузер не поддерживает работу с JavaScript!</div>
</body>
</html>

monolithed 05.02.2011 22:39

Цитата:

Сообщение от Kolyaj
'js'

опечатка?

Kolyaj 05.02.2011 22:41

Вроде нет.

monolithed 05.02.2011 22:44

тогда я не пойму, для чего присваивать неиспользуемый идентификатор элементу, поясните.

Kolyaj 05.02.2011 23:05

Это универсальный код. Если JS включен, то html имеет id="js", если JS выклюен == id="nojs". В результате для блока с классом foo:
* Стили для обоих режимов: .foo
* Стили для режима с выключенным JS: #nojs .foo
* Стили для режима с включенным JS: #js .foo

monolithed 05.02.2011 23:38

не сразу понял, что id специально затирается, лучше (меньше операций и ясней) тогда уж так:
document.documentElement.id = '';

Kolyaj 05.02.2011 23:58

Цитата:

Сообщение от monolithed
лучше (меньше операций и ясней) тогда уж так

Так лучше для данного конкретного случая. Я привёл универсальный код.

x-yuri 06.02.2011 21:55

Цитата:

Сообщение от SkyLight
А зачем вы его засунули в HEAD?

контрольный, в голову :)

x-yuri 06.02.2011 22:03

Цитата:

Сообщение от monolithed
На самом деле этот элемент хоть и стандартизован, но его применение неформально имеет статус depricated и как следствие в XHTML Strict он запрещен.

а XHTML не deprecated? В html5 об этом ничего не сказано. Есть какие-то аргументы?

Цитата:

Сообщение от monolithed
Также стоит отметить, что раньше содержимое в этом элементе индексировали ПС (может и сейчас тоже, незнаю).

странно, вроде как раз не должны

monolithed 06.02.2011 22:55

Цитата:

Сообщение от x-yuri
а XHTML не deprecated?

нет, в HTML5 (он же, вроде как уже и не дефакто - безверсионная модель HTML) также предусмотрена возможность использования XHTML (до отмены версионирования - XHTML5)
Цитата:

Сообщение от x-yuri
В html5 об этом ничего не сказано. Есть какие-то аргументы?

noscript включен в спецификацию HTML5, однако в XHTML5 strict его нет. Лично я этот элемент не использую, т.к. по большей части устанавливаю режим strict, других аргументов нет...

x-yuri 07.02.2011 02:50

Цитата:

Сообщение от monolithed
нет, в HTML5 (он же, вроде как уже и не дефакто - безверсионная модель HTML) также предусмотрена возможность использования XHTML (до отмены версионирования - XHTML5)

я имел в виду XHTML как отдельную спецификацию

Цитата:

Сообщение от monolithed
noscript включен в спецификацию HTML5, однако в XHTML5 strict его нет. Лично я этот элемент не использую, т.к. по большей части устанавливаю режим strict, других аргументов нет...

оказывается я пропустил, в XHTML strict его нет. И это не аргумент против использования noscript, это ограничение XHTML

и надо заметить, что XHTML - это когда документ отдается с MIME-типом application/xhtml+xml, отдавать XHTML с MIME-типом text/html - плохая практика

Эдди 07.09.2015 17:03

В теме раздрай. Так в head его засовывать или в начало страницы?
У меня в начале:
<noscript>
<meta http-equiv=Refresh content="0; url=http://домен/error.php?error=no_js">
</noscript>

Работает.


Часовой пояс GMT +3, время: 18:38.