Код JavaScript, который модуль добавляет с помощью drupal_add_js()
, добавляется на страницу, а список кода JavaScript, добавляемого на страницу, является единым и глобальным для каждого модуля. Это означает, что код JavaScript, добавленный из модуля, виден каждому модулю.
Фактически этот список содержится в статической переменной, используемой drupal_add_js()
, и код JavaScript добавляется на страницу в файле page.tpl.php с использованием следующего кода:
<?php print $styles; ?>
<?php print $scripts; ?>
$scripts
инициализируется в template_preprocess_page () со следующим кодом, который возвращает строку, содержащую HTML-код для использования для тегов <script>
, на основе содержимого этой статической переменной.
$variables['styles'] = drupal_get_css();
$variables['scripts'] = drupal_get_js();
Если, например, два модуля вызывают функцию с drupal_add_js(drupal_get_path('module', 'first_module') . '/jquery_plugin_tree')
и drupal_add_js(drupal_get_path('module', 'second_module') . '/jquery_plugin_tree')
, то страница будет содержать два тега <script>
, которые указывают на два файла, даже если содержимое файла одинаково в обоих случаи.
В случае, если два модуля используют один и тот же путь для файла JavaScript, тогда будет добавлен только тег <script>
.