2010-05-24 50 views
0

我正在構建Drupal主題,想知道是否有Drupalish的方式來添加一個CSS文件,只有當用戶關閉js。Drupal - 特殊的CSS文件,如果JS被關閉?

這將理想走在theme.info文件,以保持它的整潔!

像這樣的理想:

conditional-stylesheets[if no javascript][all][] = nojs.css 

如果這是不可能的,那麼我會保留所有需要JS出來的css文件的CSS,並動態地添加它使用JS但這似乎有點亂......

任何想法?

回答

4

你不需要爲有條件的意見或無腳本標籤。默認情況下,Drupal的增加了一個 'JS' 類的HTML元素,並設置是否啓用javascript一個cookie:

// Global Killswitch on the <html> element 
if (Drupal.jsEnabled) { 
    // Global Killswitch on the <html> element 
    $(document.documentElement).addClass('js'); 
    // 'js enabled' cookie 
    document.cookie = 'has_js=1; path=/'; 
    // Attach all behaviors. 
    $(document).ready(function() { 
    Drupal.attachBehaviors(this); 
    }); 
} 

(這是上線296 /misc/drupal.js。)

所有的CSS只有在啓用了js時才應用的選擇器可以以.js作爲前綴。如果你願意,你可以把這些CSS規則放在一個單獨的文件中,但你不需要。

+0

那輝煌。感謝您的答覆,我相信它也會幫助其他人。 – jsims281 2010-05-26 09:00:29

+0

不客氣。感謝您的反饋。 – marcvangend 2010-05-26 10:22:21

0

我不知道那的Drupal很好,但它是一個很好的問題,無論哪種方式。根據W3Schools的說法,<noscript>標籤只允許在body元素內,所以這個標籤已經沒有了。

你有沒有考慮過做它的其他方式輪?即使用JavaScript添加腳本特定的CSS樣式表?請參閱here的起點。

+0

這看起來很有趣,但我使用的東西像jQuery CSS()會比較適合想在我的特別項目 - http://api.jquery.com/css/ – jsims281 2010-05-24 11:42:23