Я пытаюсь отслеживать входы пользователей на форуме нашего клиента. По сути, мне нужно создать слушатель событий (на чистом JS), который будет запускать JavaScript-функцию каждый раз, когда пользователь входит в форум.
Существует ли событие DOM, на которое можно подписаться?
Вы можете использовать что-то подобное во вкладке common > header компонента темы.
<script type="text/discourse-plugin" version="0.8">
const user = api.getCurrentUser();
// Если пользователь уже вошёл в систему, выходим
if (user) {
return;
}
// Здесь выполните ваши действия...
const clickCallback = (clickEvent) => {
console.log(clickEvent);
alert("Пользователь входит в систему");
// ..
// ..
};
api.onAppEvent("modal:body-shown", (event) => {
const loginButton = document.querySelector("#login-button");
if (loginButton) {
loginButton.addEventListener("click", clickCallback, { once: true });
}
});
</script>
Добавьте необходимый код в функцию clickCallback, и она сработает при нажатии пользователем на кнопку Войти внутри модального окна. У этой кнопки в настоящее время отсутствует идентификатор на мобильных устройствах, но это будет исправлено после слияния этого запроса.