Ответ 1
Ну, так как лишние пробелы между ними не имеют значения, я бы сказал:
document.body.className = document.body.className.replace("no-javascript","");
У меня есть элемент body, на котором я добавляю несколько классов. И я хочу удалить из него класс no-javascript
после его чтения браузером.
<body class="foo boo no-javascript bla">
<script type="javascript">
// remove no-javascript class here
</script>
Ну, так как лишние пробелы между ними не имеют значения, я бы сказал:
document.body.className = document.body.className.replace("no-javascript","");
Для этого нет встроенных функций javascript, но я всегда использую следующий код (заимствованный/вдохновленный этот snipplr
function removeClass(ele,cls) {
var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
ele.className = ele.className.replace(reg,' ');
}
removeClass(document.getElementById("body"), "no-javascript")
Регулярное выражение работает лучше, чем функции replace
, упомянутые в других ответах, потому что он проверяет существование этого точного имени класса и ничего более или менее. Класс с именем "piano-javascript" останется неизменным с этой версией.
Для современных браузеров (включая IE10 и выше) вы также можете использовать:
document.querySelector('body').classList.remove('no-javascript');
document.querySelector('body').classList.remove('no-javascript');
document.body.className = '';
Вы можете избежать всего этого, просто используя
<noscript>Your browser does not support JavaScript!</noscript>
Так как все, что вы помещаете в тег noscript
, будет отображаться, если Javascript выключен и ничего не будет показано, если JS включен.