Тег скрипта: атрибуты и источники конфигурации
Полный справочник атрибутов data-rc тега загрузчика, window.ReactiveChatSettings и ReactiveChat('boot'): типы, значения по умолчанию, приоритеты и атрибуты других элементов страницы.
Виджет можно полностью настроить атрибутами тега скрипта, без встроенного скрипта, а значит и при строгой Content Security Policy. Если предпочитаете JavaScript, задавайте те же поля через window.ReactiveChatSettings или ReactiveChat('boot', …).
Дизайн, тексты, главный экран, правила и туры обычно задаются в аккаунте; они приходят с сервера при подключении. Эти атрибуты предназначены для настроек отдельной страницы. Все варианты дизайна описаны в разделе Настройка.
Четыре источника конфигурации и их приоритет
Поздний источник побеждает; объединение плоское (поле-объект вроде brand заменяется целиком, без глубокого объединения):
- Значения виджета по умолчанию
- Атрибуты
data-rc-*тега загрузчика window.ReactiveChatSettings(задано до загрузчика)- Вызовы
ReactiveChat('boot', {...})из очереди в их порядке
Неизвестные виджету поля отбрасываются; поэтому атрибут с опечаткой молча не действует.
<script>
window.ReactiveChatSettings = { locale: 'en', position: 'left' };
</script>
<script src="https://cdn.reactive.chat/loader.js"
data-rc-site-key="SITE_KEY"
async></script>
Как читаются значения атрибутов
Имя преобразуется из kebab-case в camelCase: data-rc-site-key → siteKey. Тип определяется значением по умолчанию:
- Строка — принимается без изменений.
- Логическое значение — только
"false"и"0"означают false; всё остальное, включая пустой атрибут, — true. - Список — через запятую, например
"idle,pointer". - Число или объект — читается как JSON. Если JSON некорректен, остаётся значение по умолчанию.
Читается только выполняемый сейчас тег (document.currentScript). Поэтому встраивайте загрузчик как классический скрипт, без type="module".
Обязательное
- data-rc-site-key (строка, обязателен) — ключ проекта из аккаунта, Проект → Установка. Шаблон
[A-Za-z0-9_-]{8,64}. При отсутствии или неверном значении ничего не запускается, без сообщения в консоли.
Подключение и доставка
- data-rc-ws-url (строка, необязательно) — адрес подключения чата. Если не задан, выводится из расположения
loader.js(cdn.reactive.chat→wss://ws.reactive.chat/rc_wss/). Обязателен, как толькоloader.jsзагружается не сcdn.reactive.chat, а также для доменов с двухчастным окончанием вроде.co.uk. См. Транспорт. - data-rc-cdn-base (строка, необязательно) — каталог загрузки ядра и модулей. По умолчанию каталог
loader.js. - data-rc-core-url (строка, необязательно) — фиксированный адрес ядра вместо
core.<hash>.jsиз того же каталога. Только для особых случаев, например своего зеркала. - data-rc-transport (
http, необязательно) — принудительно включает резервный канал HTTP с начала. Работает на любом элементе в документе при запуске; другой вариант:ReactiveChatSettings.transport = 'http'. Черезbootне действует. - data-rc-max-retries (число, по умолчанию
2) — повторы при неудачной загрузке ядра (интервал 300 мс × номер попытки).
Язык, тема, движение
- data-rc-locale (строка, по умолчанию
auto) —de,enилиpl.autoберёт<html lang>, затем язык браузера, иначе английский. Другие языки заменяются английским. - data-rc-theme (
auto|light|dark, по умолчаниюauto) —autoследует светлому/тёмному режиму страницы, иначе системе. - data-rc-motion (
auto|reduced|full, по умолчаниюauto) — анимации;autoследуетprefers-reduced-motion. - data-rc-strings (JSON-объект, по умолчанию
{}) — замена отдельных текстов, например{"a11y.launcher":"Open help"}. В остальных случаях тексты задаются в аккаунте (Настройка).
Показ и положение
- data-rc-position (
right|left, по умолчаниюright) — угол для кнопки и окна. - data-rc-offset (JSON, по умолчанию
{"x":20,"y":20}) — отступ от края в пикселях в дополнение к безопасной области. - data-rc-z-index (число, по умолчанию
2147483000). - data-rc-avoid-overlap (логическое, по умолчанию
true) — обходит закреплённые панели внизу (баннеры cookie, панели корзины). - data-rc-hide-launcher (логическое, по умолчанию
false) — без значка чата; окно открывается только через свои ссылки или JavaScript API. Облачки тогда подавляются. Действует независимо от настройки аккаунта. - data-rc-auto-open (логическое, по умолчанию
false) — открывает окно после запуска. - data-rc-isolation (
shadow|iframe, по умолчаниюshadow) — виджет находится в закрытом shadow DOM;iframeпомещает окно во фрейм для страниц с очень агрессивными глобальными стилями. - data-rc-brand (JSON-объект) — фирменный цвет и форма кнопки. Загрузчик немедленно читает из него
primary(#rrggbb),onPrimary,radiusиlauncher.shape(circle,rounded,square,bubble,leaf),launcher.size(44–72) иlauncher.size_m; остальное проверяет ядро. Код из аккаунта уже содержит эти значения; без корректногоprimaryзагрузчик не показывает кнопку-заглушку, а ждёт цвет с сервера (без скачка цвета, но кнопка появляется позже). Если объект содержит только начальные поля, после подключения действует оформление аккаунта; с дополнительными полями (например,accent) — ваше. Подробнее: Настройка. - data-rc-logo (JSON-объект) —
src,placement(launcher,header,both),height,alt. - data-rc-custom-css (строка) — собственный CSS внутри shadow DOM. См. Настройка.
Загрузка и поведение
- data-rc-load-triggers (список, по умолчанию все пять) — когда загружается ядро:
idle(браузер простаивает),pointer(мышь или палец над кнопкой чата),command(команда API, кромеboot,update,track,identify),frustration(сигнал MousePlayer),push. Срабатывает первый триггер. - data-rc-idle-timeout-ms (число, по умолчанию
3000) — тайм-аут триггераidle. - data-rc-consent (
auto|granted|denied, по умолчаниюauto) — состояние согласия.autoспрашивает платформу согласия (IAB TCF v2 через__tcfapi, иначе consented.eu);granted/deniedфиксирует его. См. Интеграция конфиденциальности. - data-rc-dom-spiegel (логическое, по умолчанию
true) —falseне отправляет текст страницы ассистенту и отключает «Покажите». - data-rc-promo (логическое, по умолчанию
true) —falseскрывает промокарточку на этой странице. - data-rc-launcher-selector (CSS-селектор) — нажатия на подходящие элементы переключают окно. Работает только после загрузки ядра; для немедленно работающих ссылок используйте
data-rc-open(ниже). - data-rc-dnd (логическое, по умолчанию
false) — начальное значение «Не беспокоить». - data-rc-session-ttl-ms (число, по умолчанию
1800000) — срок использования сеанса MousePlayer. - data-rc-debug (логическое, по умолчанию
false) — диагностический вывод в консоль. РавнозначноlocalStorage.setItem('rc_debug', '1')в браузере.
Атрибуты других элементов страницы
Открыть чат (работает сразу, даже до загрузки ядра):
- data-rc-open — на любом элементе; нажатие открывает чат рядом с ним.
data-rc-open="corner"открывает в углу. - href="#rc-open" или href="#reactive-chat" — то же для ссылок.
- data-rc-anchor="none" — как
corner. - data-rc-message — текст, который вводится в поле, но не отправляется (не более 200 символов).
- data-rc-tab —
msg,homeилиhelp: активная вкладка.
Подробнее: Открытие чата через собственную ссылку или кнопку.
Текст о конфиденциальности:
- data-rc-privacy — место раздела о reactive.chat в политике конфиденциальности, с
data-lang,data-heading(2–6) иdata-email. Состояние вdata-rc-privacy-state(loading,done,error). См. Интеграция конфиденциальности.
Исключение текста страницы:
- data-rc-private или равнозначный data-rc-ignore — это поддерево никогда не передаётся ассистенту как текст страницы и не становится целью «Покажите».
<aside data-rc-private>
Internal notes the assistant should not read.
</aside>
Параметры URL
- ?rc_ab=A до E — принудительно выбирает вариант текущего A/B-теста для проверки качества (см. Настройка).
При загрузке виджет не обрабатывает другие параметры адреса.
Повторное встраивание
Если загрузчик на странице дважды (например, через шаблон и менеджер тегов), запускается только первый с действительным ключом сайта; второй ничего не делает. Первый тег с неверным ключом не блокирует корректный второй.
Далее: JavaScript API · События
Обновлено: