Nuestro enfoque actual es ver si podemos simplemente detectar que estamos en la página de cierto usuario a través del enlace canónico y, si es así, aplicar el video. Como tal, tenemos lo siguiente:
<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>
Sin embargo, esto solo parece funcionar en una actualización completa; por alguna razón, hacer clic de una página a otra no actualiza la propiedad --currUsername, y en lugar de aplicar un fondo de color aleatorio a las páginas de usuario, aplica un fondo de color aleatorio a todas las páginas si se presionó F5 por última vez en una página de usuario, mientras que no aplica nada a ninguna página si se presionó F5 por última vez en una página que no es de usuario.
Francamente, no tengo suficiente experiencia con JavaScript para saber por qué sería así; me parece que, al cambiar de página, la función debería ejecutarse (lo cual hace), haciendo que la variable pageURL se actualice, y esto debería hacer que la propiedad --currUsername se actualice al cargar una página. Sin embargo, esto solo ocurre en una actualización completa, de lo contrario, las variables no parecen cambiar.
¿Alguna idea de lo que estoy haciendo mal aquí?