Отладка 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 привязан сюда: