В Drupal 7 можно легко управлять типом скрипта для всех js-скриптов, выводимых в шапке сайта. Для этого необходимо сделать несколько простых шагов.

Шаг 1:

Откройте файл template.php вашей активной темы. Если этого файла у вас нет, создайте его в корневой директории вашей темы.

Шаг 2:

Добавьте в файл template.php следующий код:


function YOUR_THEME_NAME_preprocess_page(&$variables) {
  drupal_add_js(drupal_get_path('theme', 'YOUR_THEME_NAME') . '/script.js', array(
    'type' => 'file',
    'scope' => 'header',
    'weight' => 20,
    'every_page' => TRUE,
  ));
}

В этом коде мы используем функцию preprocess_page для добавления нашего js-скрипта в шапку сайта. Замените YOUR_THEME_NAME на имя вашей активной темы. Укажите путь к вашему скрипту вместо ‘script.js’.

Шаг 3:

Сохраните изменения в файле template.php.

Теперь все ваши js-скрипты, добавленные через функцию drupal_add_js в шапке сайта через файл template.php, будут иметь тип ‘file’.

Пример программного кода:


(function ($) {
  Drupal.behaviors.customBehavior = {
    attach: function (context, settings) {
      // Ваш код здесь
    }
  };
})(jQuery);

В качестве дополнения к этой статье, рассмотрим несколько смежных вопросов и предоставим ответы на них:

Вопрос 1: Как добавить в Drupal 7 js-скрипт в футер?

Ответ: Для добавления js-скрипта в футер следуйте тем же шагам, что и для шапки, только вместо ‘scope’ => ‘header’ укажите ‘scope’ => ‘footer’.

Вопрос 2: Как добавить в Drupal 7 внешний js-скрипт?

Ответ: Чтобы добавить внешний js-скрипт, используйте функцию drupal_add_js с указанием полного пути к скрипту:


drupal_add_js('http://example.com/path/to/script.js', 'external');

Вопрос 3: Как в Drupal 7 добавить атрибут async для js-скрипта?

Ответ: Для добавления атрибута async для js-скрипта в Drupal 7 используйте следующий код:


drupal_add_js(drupal_get_path('module', 'YOUR_MODULE_NAME') . '/script.js', array(
  'type' => 'file',
  'scope' => 'header',
  'weight' => 20,
  'every_page' => TRUE,
  'attributes' => array('async' => TRUE),
));

Добавьте этот код в функцию preprocess_page вашего модуля, заменив YOUR_MODULE_NAME на имя вашего модуля.