Il nostro approccio attuale è verificare se riusciamo semplicemente a rilevare che ci troviamo sulla pagina di un determinato utente tramite il link canonico e, in tal caso, applicare il video. Pertanto, abbiamo quanto segue:
<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>
Tuttavia, questo sembra funzionare solo con un aggiornamento completo - per qualche motivo, navigare da una pagina all’altra non aggiorna la proprietà --currUsername e, invece di applicare uno sfondo di colore casuale alle pagine utente, applica uno sfondo di colore casuale a tutte le pagine se F5 è stato premuto l’ultima volta su una pagina utente, mentre non applica nulla a nessuna pagina se F5 è stato premuto l’ultima volta su una pagina non utente.
Francamente, non ho abbastanza esperienza con JavaScript per sapere perché ciò accada: mi sembra che, al cambio di pagina, la funzione dovrebbe essere eseguita (cosa che fa), facendo aggiornare la variabile pageURL, e questo dovrebbe causare l’aggiornamento della proprietà --currUsername al caricamento di una pagina. Tuttavia, ciò si verifica solo con un aggiornamento completo, altrimenti le variabili non sembrano cambiare.
Hai qualche idea su cosa sto sbagliando?