Delegate в WEB
Функциональность работает с версии widget 4.3.0
Чтобы использовать описанный функционал, для установки widget.js должна использоваться одна из следующих ссылок:
https://cdn.uxfeedback.ru/X.X.X/widget.js, где X.X.X - номер версии большей чем 4.3.0
https://cdn.uxfeedback.ru/widget.js
В документации приведены описания кастомных событий, которые генерирует скрипт UX Feedback в процессе своей работы на сайте.
Событие об инициализации скрипта
Название событие — uxsReady
Срабатывает в момент полной загрузки файлов скрипта и инициализации всех необходимых для корректной работы сущностей.
Пример использования:
document.addEventListener('uxsReady', () => window.UXS.sendEvent('eventName'))Событие показа формы
Название события — uxs/showForm
Передаваемые данные:
event.detail = {
campaignId: number - id показанной кампании,
eventName?: string - название события, по которому была вызвана кампания (опционально)
}Срабатывает в момент монтирования элементов формы в DOM
Пример использования:
document.addEventListener('uxs/showForm', (event) => {
const { campaignId, eventName } = event.detail;
// your custom code
})Событие закрытия формы
Название события — uxs/closeForm
Передаваемые данные:
event.detail = {
campaignId: number - id показанной кампании,
formFinished: bool - флаг полного прохождения формы, принимает значения true, если форма была закрыта на странице конченого типа (способ закрытия не имеет значения),
url: string - (опциональный параметр) url, на который был совершен переход из формы по логике перехода
…rest: [array, string, number] - (опциональные параметры) значения ответов пользователя в форме
Приходят в формате fieldId: value,
где fieldId - значение уникального идентификатора поля, на который был дан ответ
value - значение, которые пользователь оставил в форме
}Срабатывает в момент начала процесса скрытия формы (способ закрытия не имеет значения)
Пример использования:
document.addEventListener('uxs/closeForm', (event) => {
const {
campaignId,
formFinished,
url,
...rest,
} = event.detail;
// answerOnField = rest['7GUk-1UW'];
// your custom code
})Пример реального объекта event.detail:
{
campaignId: 1,
formFinished: true,
Gh0t2XKE: 8,
Ti65DWin: "ответ на поле комментарий",
sU3FzP9m: ["ei91VsP7""],
oa30dsFT: "i31wlNA2"
}