Добавить в структуру шаблона компонента файл, который будет подгружаться до подключения файла script.js

Рейтинг: 0.5466  
Новая
Предложил Popovich Aleksey 04.02.2015 17:15:22

Добавить в структуру шаблона компонента файл, который будет подгружаться до подключения файла script.js

Доброго времени суток, товагиши!

Поясню суть идеи.

Итак, есть у нас необходимость выполнять какой-то набор действий на стороне JS в зависимости от того, что мы имеем в $arResult (или в коде, обработавшем $arResult).

Как мы обычно делаем? берем и пишем весь скрипт внутри template.php, что не есть хорошо.

А вот по другому это можно было бы сделать так:

берем файл (к примеру, component_prolog.php) и в него вставляем JS код, который объвит переменные с их ключевыми значениями. И тогда мы сможем  в стандартном файле script.js уже анализировать значения этих переменных и выполнять нужные действия.

Простите, за скомканность описания.

Рейтинг: 0.1893  
Кирсанов Анатолий 08.02.2015 21:17:28
Я такие вещи делаю на верстке в data-атрибутах. Тогда основная верстка не засирается JS (на это косо смотярт сео-шники) и внешний script.js способен на подвиги.
Рейтинг: 0  
Popovich Aleksey 08.02.2015 21:23:24
Да, я тоже делаю через data-, но тут появилась необходимость в JS передаваться достаточно большой массив данных для дальнейшей отрисовки изображений с помощью библиотеки raphael. Такое не особо удобно передавать через data-атрибуты. Осбобенно, учитывая, что набор объектов для отрисовки может быть произвольным
Рейтинг: -0.2794  
Кирсанов Анатолий 08.02.2015 21:46:40
появилась необходимость в JS передаваться достаточно большой массив данных для дальнейшей отрисовки изображений с помощью библиотеки raphael.
Тогда нужно в эпилоге компоненты попользоваться CMain::AddHeadString. Я бы покопался в ядре и посмотрел, как в страницу отдаются переменные BX.message, если бы это была моя задача.