Лучший подход для введения переменных данных в файлы JavaScript?
Я ищу хороший подход для управления некоторым кодом JS из вызова модуля. (Используя Drupal 6.)
У меня есть набор функций JavaScript, которые мне нужно добавить на страницу. (Обычный JavaScript, без jQuery.) К сожалению, они полагаются на некоторые переменные со страницы, на которой они показаны. Поэтому мой текущий подход заключается в том, чтобы генерировать весь JavaScript из кода PHP, что приводит к большому количеству экранированных строк, таких как $output .= ' var url = "'. $url . '";' . "\n";
, что не так приятно после 20-30 строк код.
Поэтому я хотел бы переместить весь код JavaScript в его собственный файл .js
и найти способ ввести мои переменные. До сих пор единственное решение, которое я мог придумать, - это поместить его во временный файл, прочитать его, изменить и сохранить в каталоге /files
. Но есть ли другой, более предпочтительный способ?
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.