
Хочу поделится способом, который мы используем при разработке.
Иногда для правильной работы JS требуется не только его код, но еще и файл стилей CSS, языковой файл и иногда загрузка других встроенных библиотек, все это реализует наша библиотека JS Core.
JS Core так же отслеживает зависимости от других библиотек, в случае необходимости подключая их, при этом исключая дублирование подключений.
Данный метод полностью совместим с новой функцией ядра - "Оптимизация CSS и JS" которая вышла в обновлении main 12.0.7.
Регистрация вашего скрипта в JS Core, например в include.php модуля:
CJSCore::RegisterExt('your_js', array( 'js' => '/bitrix/js/your_module/functions.js', 'css' => '/bitrix/js/your_module/css/functions.css', 'lang' => '/bitrix/modules/your_module/lang/'.LANGUAGE_ID.'/functions_js.php', 'rel' => array('popup', 'ajax', 'fx', 'ls', 'date', 'json') )); |
js - путь до вашего JS скрипта
css - путь до вашего CSS файла (не обязательный параметр)
lang - путь до вашего языкового файла с учетом языковой константы (не обязательный параметр)
rel - зависимости, здесь перечисляются какие библиотеки нужны например jquery или json, список можно посмотреть в файле /bitrix/modules/main/jscore.php (не обязательный параметр)
skip_core - если у вас нет зависимостей и bitrix core вам не нужен, смело ставьте true (не обязательный параметр)
Инициализация вашего скрипта, в компоненте:
<?CJSCore::Init(array('your_js'));?> |
Языковые файлы, составляются в привычном для битрикс-компонентов формате:
<? $MESS["YM_TEXT_1"] = "Текст 1"; $MESS["YM_TEXT_2"] = "Текст 2"; ?> |
BX.message('YM_TEXT_1'); |
Эффективной разработки!