Для подключения js скриптов лучше всего использовать слушатель события OnProlog, которое вызывается в начале визуальной части пролога сайта.
Ниже, приведены примеры слушателей события OnProlog с определением страниц на которых надо подключить свои скрипты.
//example for all pages
AddEventHandler('main', 'OnProlog', function(){
//todo here. Asset::getInstance()->addJs('path/to/script.js')
});
//example for task ( /company/personal/user/1/tasks/task/view/2/ )
AddEventHandler('main', 'OnProlog', function(){
global $USER;
$arVariables = null;
\CComponentEngine::ParseComponentPath("/company/personal/user/".$USER->GetID()."/tasks", ["task" => "task/#action#/#task_id#/"], $arVariables);
if ($arVariables['action'] == 'view' && !empty($arVariables['task_id'])) {
//todo here. Asset::getInstance()->addJs('path/to/script.js')
}
});
//example for task full ( /company/personal/user/1/tasks/task/view/2/ , /workgroups/group/7/tasks/task/view/5/?pgpg=1111&111=333 )
AddEventHandler('main', 'OnProlog', function(){
$request = \Bitrix\Main\Application::getInstance()->getContext()->getRequest();
$curUri = parse_url($request->getRequestUri());
$curUri = $curUri['path'];
$wantedPath = '/tasks/task/view/';
$pos = strpos($curUri, $wantedPath);
if($pos!==false){
list($unused, $taskId) = explode($wantedPath, $curUri);
$taskId = str_replace('/', '', $taskId);
//todo here. Asset::getInstance()->addJs('path/to/script.js')
}
});
//example for crm deal
AddEventHandler('main', 'OnProlog', function(){
global $USER;
$arVariables = null;
\CComponentEngine::ParseComponentPath("/crm/", ["deal" => "deal/#action#/#deal_id#/"], $arVariables);
if ($arVariables['action'] == 'view' && !empty($arVariables['deal_id'])) {
//todo here. Asset::getInstance()->addJs('path/to/script.js')
}
});
Используя данные примеры, можно внедрятся в интерфейс Б24, обогащая его своим функционалом.
{{ item.text }}