現在のところ、正規リンクから特定のユーザーのページにいるかどうかを検出できるかどうかを確認し、そうであればビデオを適用するというアプローチをとっています。そのため、以下のコードを使用しています。
<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 プロパティが更新されるはずです。しかし、これはフルリフレッシュでのみ発生し、それ以外の場合は変数が変更されていないようです。
ここで何が間違っているか、何かアイデアはありますか?