Лучший подход для введения переменных данных в файлы JavaScript?


Я ищу хороший подход для управления некоторым кодом JS из вызова модуля. (Используя Drupal 6.)

У меня есть набор функций JavaScript, которые мне нужно добавить на страницу. (Обычный JavaScript, без jQuery.) К сожалению, они полагаются на некоторые переменные со страницы, на которой они показаны. Поэтому мой текущий подход заключается в том, чтобы генерировать весь JavaScript из кода PHP, что приводит к большому количеству экранированных строк, таких как $output .= ' var url = "'. $url . '";' . "\n";, что не так приятно после 20-30 строк код.

Поэтому я хотел бы переместить весь код JavaScript в его собственный файл .js и найти способ ввести мои переменные. До сих пор единственное решение, которое я мог придумать, - это поместить его во временный файл, прочитать его, изменить и сохранить в каталоге /files. Но есть ли другой, более предпочтительный способ?

Author: Jensen, 2011-12-12

1 answers

В Drupal есть массив javascript для сохранения настроек и переменных, посмотрите здесь:

Http://api.drupal.org/api/drupal/includes--common.inc/function/drupal_add_js/6

Проверьте опцию "настройки" на этой странице.

Примером может быть:

$my_module_variables = array(
  "url"  => "http://google.com",
  "name" => "this is a variable"
);

drupal_add_js(array("my_module_vars" => $my_module_variables),'settings');

И для использования его в ваших файлах javascript вы можете сделать:

console.log(drupal.settings.my_module_vars.url);
//will print http://google.com
console.log(drupal.settings.my_module_vars.name);
//will print "this is a variable"

Таким образом, вы можете установить переменные javascript без необходимости печатать код javascript, используя только массив php.

 6
Author: Gnuget, 2011-12-13 00:25:44