Мы хотели бы включить бота от стороннего разработчика на нашем сайте Discourse, чтобы помочь новым пользователям понять, о чём наше сообщество, до того, как они присоединятся и оплатят членство (через плагин подписки). Мы хотим запускать этого бота из сообщений и призывов к действию (CTA) по всему сайту через ссылку или клик по кнопке, чтобы инициировать заранее определённый сценарий в боте.
Бот (пример здесь) можно интегрировать либо через iframe, либо с помощью этого скрипта перед закрывающим тегом body:
<script src="https://widget.flowxo.com/embed.js" data-fxo-widget="eyJ0aGVtZSI6IiM2N2MxOGUiLCJ3ZWIiOnsiYm90SWQiOiI1ZjYwNmFmZGJhYmU5NjAwNGIwODc4NTMiLCJ0aGVtZSI6IiM2N2MxOGUiLCJsYWJlbCI6IkV4YW1wbGVib3QifX0=" async defer></script>
Поэтому я (не программист
) создал компонент темы с кодом выше и дополнительным скриптом, который запускает определённый сценарий при клике на ссылку с конкретным ID:
<script type="text/javascript">
// Сначала дождитесь загрузки страницы
window.onload = function() {
// Получите ссылку на странице
// с идентификатором "mylink"
var a = document.getElementById("mylink");
// Установите код для выполнения при клике на ссылку,
// назначив функцию на "onclick"
a.onclick = function() {
// Ваш код здесь...
FxoMessenger.create();
FxoMessenger.on('stateChanged', function(state) {
if (state === 'connected') {
FxoMessenger.sendMessage('Это текст, который запускает сценарий в боте!');
}
});
// Если вы не хотите, чтобы ссылка фактически
// перенаправляла браузер на другую страницу,
// например "google.com" в нашем примере,
// верните false в конце этого блока.
// Обратите внимание, что это также предотвращает всплытие событий,
// что, вероятно, нам здесь нужно, но не всегда так.
return false;
}
}
Это работает в теории, но, к сожалению, в постах Discourse ID автоматически удаляется из ссылки. Есть ли способ этого добиться? Спасибо за помощь!