任何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'中,通過向內容中添加一個類以隱藏(如示例中爲了清晰),可以很容易地隱藏選擇器所需的任何內容,無論是結構選擇器還是(如果一切都失敗)。 –