任何JavaScript只有在启用了JavaScript的情况下才能正常工作,所以无论您如何使用JavaScript,只有在启用JavaScript的情况下才能正常工作,因此您无需为此进行测试。
话虽如此,你可以看到它是如何在做HTML5 Boilerplate:
<html class="no-js" lang="en">
... the rest of the page
</html>
使用施加到<html>
标签no-js
类。该类使用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');
这是一个简单而优雅的解决方案,所有的Y你不用担心你的样式和标记是CSS类。
来源
2011-03-10 10:23:48
rsp
效果最好,因为Akaruns解决方案可能会在dom完全加载之前导致轻微闪烁。 – ullmark
是的,它取决于您拥有的“隐藏块”的数量! – Akarun
@Akarun:我不这么认为。通过将类添加到'body'中,通过向内容中添加一个类以隐藏(如示例中为了清晰),可以很容易地隐藏选择器所需的任何内容,无论是结构选择器还是(如果一切都失败)。 –