我正在修改一箇舊網站,並且專注於使Javascript/jQuery儘可能不顯眼。我正在尋找關於該項目的一部分的一些建議:UJ要求,如果在瀏覽器中關閉Javascript,則所有網站內容仍可供用戶使用。我的網站的一部分有一大堆項目。列表中的每個項目都有自己的描述,它使用CSS display:none默認情況下隱藏它。點擊該項目可以使用jQuery .toggle()來切換描述的可見性,因此無法使用Javascript(無論出於何種原因)的人永遠不會看到它。如果我使用Javascript/jQuery而不是CSS來隱藏描述,那麼當頁面加載時它們都會立即可見,這是我想要避免的。那麼最好的解決方案是什麼?實現不顯眼的Javascript
回答
基本上你可以在你的html
元素插入類「無JS」,像這樣
<html class="no-js" lang="en">
,如果JavaScript是在客戶端上啓用你很快就會刪除類(使用modernizr或簡單的代碼片段像
<head>
<script>
(function(d) {
d.className = d.className.replace(/(^|\b)no-js(\b|$)/, 'js');
}(document.documentElement));
</script>
...
</head>
這樣
可以避開FOUC (flash of unstyled content)只需使用.no-js
和.js
類,像這樣的CSS規則:
.yourlistitems {
display: block;
}
.js .yourlistitems {
display: none;
}
這種方法也被H5BP
需要注意的是,你並不真的需要預先.no-js
類每一個規則:思維「漸進增強」和術語「非侵入式JavaScript」,您將編碼和風格第一對於也可以在沒有javascript的情況下工作的頁面,那麼您將添加功能(和樣式特異性,前面加上.js
類)
謝謝 - 完美的作品。你能解釋一下函數中的/(^ | \ b)和(\ b | $)/究竟是做什麼的? – 2012-01-30 12:17:41
正則表達式查找不屬於另一個類的確切類「no-js」作爲子字符串(如xxxno-js或no-jsxxxx) – fcalderan 2012-01-30 12:22:26
您是否想過使用Modernizr實現的方法?
通過腳本將CSS類添加到HTML標記中,該腳本會導致不同的CSS選擇器匹配。
<html>
<head>
<!--
Putting this script in the head adds the "js"
class to the html element before the page loads.
-->
<script type="text/javascript" language="javascript">
document.documentElement.className = "js";
</script>
<style type="text/css">
/*
Only apply the hidden style to elements within the HTML element
that has the js class
*/
.js .description {display:none;}
</style>
</head>
<body>
<span class="description">Example</span>
</body>
</html>
不能告訴我們,如果這真的幫助,因爲潛在的異步操作,但你可以添加一個<script>
其預先考慮您的<style> with display: (block|inline|whatever)
在您使用純JS,不是jQuery的切換所有相關的顯示器none !important
。
所以在JS的情況下,CSS顯示設置將被預先覆蓋。
- 1. 如何實現動態內容生成的不顯眼的JavaScript?
- 2. 使用參數實現不顯眼的Javascript
- 3. 使javascript不顯眼
- 4. 使用mootools的不顯眼的JavaScript ajax?
- 5. 如何實現不顯眼的方法轉發?
- 6. 是不是顯眼的JavaScript過時?
- 7. 不顯眼的javascript痛點要小心
- 8. 不顯眼的Javascript - 和Ajax請求
- 9. Rails 3.1不顯眼的Javascript與Flot
- 10. ASP.NET MVC 3:不顯眼的JavaScript驗證
- 11. 與ASP.NET MVC不顯眼的JavaScript驗證
- 12. rails最佳實踐在哪裏放置不顯眼javascript
- 13. Rails:當JavaScript關閉時不顯眼DELETE
- 14. Jquery的不顯眼如何
- 15. 使用不顯眼的AJAX
- 16. 不顯眼的驗證editorfor
- 17. 有一點我不明白的不顯眼的javascript
- 18. 新的RSS條目的不顯眼的,實時的通知
- 19. 查看jQuery的不顯眼的驗證是真實的jQuery
- 20. MVC不顯眼驗證
- 21. 不顯眼JS預期
- 22. 這是不顯眼的JavaScript的缺點之一嗎?
- 23. 如何讓我的Rails 3表單中的JavaScript不顯眼?
- 24. 不顯眼的DOM準備的javascript失去此背景下,
- 25. 用Cucumber測試JavaScript的不顯眼的方式?
- 26. 帶有webdriver的不顯眼的Javascript UI測試
- 27. 不顯眼的JavaScript與jQuery - 好10分鐘的教程?
- 28. 不顯眼的jQuery驗證javascript創建的元素MVC3
- 29. ASP.Net 2012 jQuery的不顯眼驗證:現在是什麼?
- 30. Ajax.ActionLink通過jquery帶有不顯眼的javascript
向我們展示一下列表中的代碼... – Teemu 2012-01-30 11:07:36