Реализация в несколько шагов
1. Регистрация своей JS библиотеки в init.php
//регистрируем библиотеку
CJSCore::RegisterExt(
'custom_js',
array(
'js' => '/local/js/custom.js',
'css' => '/local/css/custom.css',
'lang' => '/local/js/lang/'.LANGUAGE_ID.'/custom.js.php',
'rel' => array(
'ajax',
'popup',
),
)
);
//добавляем js d header не в административной части
if (!ВАШ_NAMESPACE\Main::inBitrixDir()) {
CJSCore::Init('custom_js');
}
2. в самом скрипте JS
var CustomJS = BX.namespace('CustomJS');
CustomJS.initGlobalEvents = function () {
var self = this;
BX.addCustomEvent("SidePanel.Slider:onOpen", function (event) {
CustomJS.addDealButtons();
});
}
CustomJS.addDealButtons = function () {
var page_title_btn_box = document.querySelector('.crm-pagetitle-btn-box');
if (page_title_btn_box) {
if (!document.getElementById('custom-btn-get-order')) {
page_title_btn_box.prepend(
BX.create('div', {
attrs: {
id: 'custom-btn-get-order',
className: 'ui-btn ui-btn-split ui-btn-themes ui-btn-light-border ui-btn-success'
},
text: BX.message('CUSTOM_BTN_GET_ORDER'),
events: {
click: BX.proxy(CustomJS.updateDealFromOrder, this)
},
})
);
}
}
}
CustomJS.updateDealFromOrder = function (event) {
console.log("Событие нажатие на кнопку")
}