Любой JavaScript будет работать, только если JavaScript включен, поэтому независимо от того, как вы это делаете с помощью JavaScript, он всегда будет работать, только если JavaScript включен, поэтому вам никогда не придется проверять это.
Сказанное выше, вы можете увидеть, как это делается в HTML5 Boilerplate :
<html class="no-js" lang="en">
... the rest of the page
</html>
с использованием класса no-js
, примененного к тегу <html>
. Позже класс удаляется с помощью JavaScript и добавляется класс js
, который вы можете использовать в своем CSS и HTML:
<p class="js">This is displayed if JavaScript is enabled</p>
<p class="no-js">This is displayed if JavaScript is disabled</p>
Или в CSS:
.no-js #someWidget { display: none; }
.js #someFallback { display: none; }
Если вы используете Modernizr , тогда он уже изменит эти классы для вас, но даже если вы этого не сделаете, все, что вам нужно сделать, это что-то вроде:
document.documentElement.className =
document.documentElement.className.replace(/\bno-js\b/,'js');
Это простое и элегантное решение, и вам нужно беспокоиться только о классах CSS в ваших стилях и разметке.