2010-09-17 2 views
6

Мое приложение зависит от JavaScript, я хочу проверить, что JavaScript браузера браузера включен или нет, и поднять предупреждающее сообщение, если оно выключено.Как проверить JavaScript браузера включен или нет

+5

LOL: поднять предупреждающее сообщение, если Javascript выключен – GvS

ответ

12

На самом деле есть тег <noscript>, который вы можете использовать для отображения содержимого, содержащегося внутри, когда javascript недоступен.

Что-то вроде:

<noscript> 
    <div> 
     You must enable javascript to continue. 
    </div> 
</noscript> 

ДИВ просто не будет отображаться, если они имеют JavaScript, и это не очень легко сказать, если браузер работает, независимо от того, нужно ли вам это пинговать сервер обратно, чтобы он знает или использует его для выполнения некоторых дополнительных функций.

13

Поместите сообщение в <div>, которое завернуто в тег <noscript>. Если JavaScript отключен, то <div> будет отображаться как часть DOM; если скрипт включен, div не будет в DOM.

Например, вы можете поставить следующее сразу после открытия тега <body> и нарисовать его с помощью CSS, чтобы иметь красный фон, чтобы сделать его более заметным.

<noscript> 
    <div id="js-warning"> 
     To be able to access all of our features, you need a browser that supports JavaScript, and it needs to be enabled. 
    </div> 
</noscript> 
2

Браузер может быть «работоспособен на JavaScript», но это не означает, что JavaScript не был отключен пользователем или администратором. Нет никакого реального способа определить это. Лучшие практики диктуют «прогрессивное улучшение»; то есть вы должны сначала работать без JavaScript, а затем добавить функциональность JavaScript для тех (наиболее), которые были включены.

http://www.alistapart.com/articles/progressiveenhancementwithjavascript/

http://www.webcredible.co.uk/user-friendly-resources/dom-scripting/progressive-enhancement.shtml

Избегайте Hacky решения этого и иметь в виду, что существуют также проблемы доступности для людей с программами чтения с экрана. <noscript> Содержимое отображается, только если JavaScript отключен. У большинства пользователей программы чтения с экрана включен JavaScript, поэтому они будут видеть ваш недоступный скрипт, а не <noscript>.

4

«Поднять предупреждающее сообщение, если оно выключено» - это парадокс, так как если он выключен, вы не можете «делать» что-либо программно.

Вы можете сделать это по-другому «круглые, однако: сделать это сообщение отображается по умолчанию, и есть JavaScript скрыть его, если он включен (например, установив видимость дивы к скрытым),

или полагаться на стандартное соответствие браузера и использовать тег <noscript>. Материал внутри <noscript> отображается, если javascript не включен. BTW, обязательно установите атрибут type = "text/javascript" тега скрипта.

Смотрите также http://www.w3.org/TR/REC-html40/interact/scripts.html#h-18.3

+1

+1 за лучший ответ и ссылку :-) – IrishChieftain

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