Drupal - специальный css файл, если JS выключен? - PullRequest
0 голосов
/ 24 мая 2010

Я создаю тему Drupal и хочу узнать, есть ли Drupalish способ добавить файл css, только если у пользователя отключен js.

В идеале это должно быть в файле theme.info, чтобы сохранить его аккуратным!

Примерно так было бы идеально:

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

Если это невозможно, я собираюсь оставить все css, которые нуждаются в JS, в файлах css и добавить его динамически с помощью JS, но это выглядит немного грязно ...

Есть идеи?

Ответы [ 2 ]

4 голосов
/ 25 мая 2010

Для этого вам не нужны условные комментарии или теги noscript. По умолчанию Drupal добавляет класс js к элементу html и устанавливает cookie, если включен JavaScript:

// 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 голосов
/ 24 мая 2010

Я плохо знаю друпал, но в любом случае это хороший вопрос. Согласно W3Schools, тег <noscript> разрешен только в элементе body, поэтому его нет.

Рассматривали ли вы сделать это наоборот? то есть добавление специфичной для скрипта таблицы стилей CSS с использованием JavaScript? См. Отправные точки для этого здесь .

...