Использование пользовательского JavaScript


Есть ли место, куда я могу добавить пользовательский файл JavaScript в Drupal 7.x?

Он просто включает простые действия с событиями для меню, и я не хочу редактировать файлы темы/модуля.

Или мне нужно просто добавить крючок "включить" в тему/модуль?

Author: kiamlaluno, 2011-12-15

3 answers

Есть три места, где вы можете разместить свои ресурсы Javascript:

  1. Ваша папка с темой. Если у вас на сайте есть тема с именем Mechaflash, вы можете поместить ее в Mechaflash/js или просто в Mechaflash. Чтобы сделать папку темы "более организованной", обычно люди создают специальную папку js. Я бы поместил Javascript в тему, когда ваш Javascript обеспечивает функциональность, специфичную для уровня темы/презентации, или что он влияет на весь сайт (глобальный).
  2. В одном из ваших пользовательских модулей. Здесь также может применяться тот же принцип создания выделенной папки js. Я обычно помещаю JS в модули, когда Javascript предоставляет очень специализированную функциональность, относящуюся к определенному модулю. Это также позволяет вам "упаковывать" ваш Javascript с вашими модулями и передавать эти модули на другие сайты (т.Е. модульный подход).
  3. В папке библиотеки сайта. Я никогда не делал этого лично. Не потому, что это плохо, а потому, что я думаю он зарезервирован для более сложных функций, которые могут использовать другие модули (и темы). Хороший пример - библиотека пользовательского интерфейса jQuery.

Все это можно сделать с помощью функции drupal_add_js(). Вот несколько примеров того, как добавить файл JS из модуля:

// Add a "javascript library" from your module. JS_LIBRARY is an integer constant with a value of -100, which means that `mecha_library.js` will be added before `mecha_ninja.js`.
$module_path = drupal_get_path('module', 'my_module');
drupal_add_js($module_path. 'js/mecha_library.js', array('group' => JS_LIBRARY));

// Add a javascript file from your module. The default 'group' here is JS_DEFAULT, so mecha_ninja.js will be added after mecha_library.js.
$path = drupal_get_path('module', 'my_module');
drupal_add_js($path. 'js/mecha_ninja.js', 'file');
 6
Author: amateur barista, 2011-12-15 19:29:49

Drupal 7 допускает scripts[] и stylesheets[] в обеих темах.информация и модуль.информационные файлы.

 3
Author: minnur, 2012-03-04 02:18:36

Самый простой способ - в вашем файле theme.info.

Вам просто нужно добавить скрипты[]= myscript.js в файл .info используемой вами темы.

Дополнительная информация

 2
Author: ipwa, 2011-12-16 13:14:00