Bitrix обработчики JS событий внутри своего модуля

Всем привет!

Подскажите, как правильно писать обработчики событий для JS если я разрабатываю собственный модуль? Обычные обработчики событий пишутся в install/index.php с помощью метода registerEventHandler, а вот как быть, если я хочу написать обработчик JS события?

Хочу отловить событие открытия окна задачи в CRM Bitrix24. То есть когда пользователь либо открывает уже существующую задачу, либо нажимает кнопку "Создать", чтобы создать новую задачу в CRM.

Хочу чтоб обработчик Ajax-запросы подтягивал данные с внешнего ресурса, и я бы эти данные уже вставлял в форму создания новой задачи.

Подскажите пожалуйста, куда копать?

Скриншоты прикрепил Скриншот_1 Скриншот_2


Ответы (1 шт):

Автор решения: Vadim
// Подслушать Все JS события в Bitrix
let originalBxOnCustomEvent = BX.onCustomEvent;
BX.onCustomEvent = function (eventObject, eventName, eventParams, secureParams)
{
    // onMenuItemHover например выбрасывает в другом порядке
    let realEventName = BX.type.isString(eventName) ?
        eventName : BX.type.isString(eventObject) ? eventObject : null;

    if (realEventName) {
        console.log(
            '%c' + realEventName,
            'background: #222; color: #bada55; font-weight: bold; padding: 3px 4px;'
        );
    }

    console.dir({
        eventObject: eventObject,
        eventParams: eventParams,
        secureParams: secureParams
    });

    originalBxOnCustomEvent.apply(
        null, arguments
    );
};

Взято отсюда: https://qna.habr.com/q/577673

→ Ссылка