Перейти к содержанию

Отладка js событий

Используя паттерн декоратор, можно оборачивать битровые события в обёртку, которая поможет понять, какие JS события генерирует Битрикс.

onCustomEvent

Выполнить в консоли браузера код:

function onCustomEventDecorator(func) {
    return function() {
        console.log(arguments);
        return func(...arguments);
    }
}

BX.onCustomEvent = onCustomEventDecorator(BX.onCustomEvent);

Этот декоратор добавляет логирование в консоль браузера параметров, передаваемых при срабатывании события BX.onCustomEvent. При этом само событие выполняется без изменений.

Использование этого кода в консоли браузера позволяет избежать необходимости изменять ядро. При перезагрузке страницы декоратор будет удален.

EventEmitter.emit

Декоратор для BX.Event.EventEmitter.emit:

function eventEmitterDecorator (func, context) {
  return function (eventObject, eventName, event, options) {
    console.group(eventName);
    console.log(eventObject);
    console.log(event);
    console.log(options);
    console.groupEnd();
    func.call(context, eventObject, eventName, event, options);
  }
}
BX.Event.EventEmitter.emit = eventEmitterDecorator(BX.Event.EventEmitter.emit, BX.Event.EventEmitter);

Глобально EventEmitter привязан сюда:

BX.Event.EventEmitter