Drupal - 如果JS关闭,特殊的css文件?

时间:2010-05-24 11:03:15

标签: javascript css drupal drupal-6 themes

我正在构建一个Drupal主题,想知道是否有一种Drupalish方法只有在用户关闭js时才添加css文件。

理想情况下,这应该放在theme.info文件中以保持整洁!

这样的事情是理想的:

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

如果这不可能,那么我将把所有需要JS的css保存在css文件中,并使用JS动态添加它,但这看起来有点乱......

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

您不需要条件注释或noscript-tags。默认情况下,Drupal在html元素中添加一个'js'类,如果启用了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);
  });
 } 

(这是在/misc/drupal.js的第296行。)

只有在启用js时才应用的所有css选择器都可以加上.js作为前缀。如果需要,可以将这些css规则放在单独的文件中,但不必如此。

答案 1 :(得分:0)

我不太了解drupal,但无论如何这都是一个好问题。根据W3Schools,只有<noscript>元素允许使用body标记,因此该标记已经用完。

你有没有考虑过这样做?即使用JavaScript添加特定于脚本的CSS样式表?请参阅here的起点。