Unser aktueller Ansatz besteht darin, zu prüfen, ob wir uns einfach auf der Seite eines bestimmten Benutzers befinden, indem wir den kanonischen Link auslesen. Wenn ja, wenden wir das Video an. Daher haben wir Folgendes:
<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>
Dies scheint jedoch nur bei einem vollständigen Refresh zu funktionieren – aus irgendeinem Grund aktualisiert das Klicken von Seite zu Seite nicht die Eigenschaft --currUsername, und anstatt eine zufällige Hintergrundfarbe auf Benutzerseiten anzuwenden, wird eine zufällige Hintergrundfarbe auf alle Seiten angewendet, wenn zuletzt F5 auf einer Benutzerseite gedrückt wurde, während nichts auf irgendeiner Seite angewendet wird, wenn zuletzt F5 auf einer Nicht-Benutzerseite gedrückt wurde.
Ich bin ehrlich gesagt nicht erfahren genug mit JavaScript, um zu wissen, warum das so sein könnte – es scheint mir, dass die Funktion bei einer Seitenänderung ausgelöst werden sollte (was sie tut), wodurch die Variable pageURL aktualisiert wird, und dies sollte die Eigenschaft --currUsername beim Laden einer Seite aktualisieren. Dies geschieht jedoch nur bei einem vollständigen Refresh, andernfalls scheinen sich die Variablen nicht zu ändern.
Haben Sie eine Idee, was ich hier falsch mache?