Наш текущий подход заключается в том, чтобы проверить, находимся ли мы на странице определённого пользователя, используя каноническую ссылку, и если да, то применить видео. В связи с этим у нас есть следующее:
<script type="text/discourse-plugin" version="0.8">
api.onPageChange(() =>{
determineUser();
});
function determineUser() {
var pageURL = document.querySelector("link[rel='canonical']").getAttribute("href");
var isUserPage = pageURL.includes("https://www.fortressoflies.com/u/");
document.documentElement.style.setProperty('--currUsername', pageURL);
if(isUserPage)
{
document.documentElement.style.setProperty('--lastUsername', pageURL);
$('body').css('background-color', '#'+(Math.random()*0xFFFFFF<<0).toString(16));
}
}
</script>
Однако это работает только при полной перезагрузке страницы — по какой-то причине переход между страницами не обновляет свойство --currUsername. Вместо того чтобы применять случайный цвет фона только для страниц пользователей, он применяется ко всем страницам, если последняя перезагрузка (F5) была выполнена на странице пользователя, и не применяется ни к одной странице, если F5 был нажат на не-пользовательской странице.
Честно говоря, у меня недостаточно опыта в JavaScript, чтобы понять, почему это происходит. Мне кажется, что при смене страницы функция должна запускаться (что и происходит), обновляя переменную pageURL, и это должно приводить к обновлению свойства --currUsername при загрузке страницы. Однако это происходит только при полной перезагрузке; в противном случае переменные, похоже, не меняются.
Есть ли у кого-нибудь идеи, что я делаю не так?