わかりました。このアプローチはほとんどの場合うまく機能し、説明も素晴らしいです。本当にご尽力いただきありがとうございます。
ユーザーごとに作業するのは簡単です。次のように、特定のユーザー名を確認するだけです。
const isUser1 = args.model.username == "User1"
component.setProperties({isUser1})
しかし、CSSで問題が発生しています。これらのユーザーのユーザーページの外観を少し変更したいのです。
現在、以前と同じコードでこれを実現しています。
<script type="text/discourse-plugin" version="0.8">
api.onPageChange(() =>{
window.onload = determineUser();
});
async function determineUser() {
await sleep(50);
var pageURL = document.querySelector("meta[property='og:url']").getAttribute("content");
var isUserPage = pageURL.includes("https://www.siteurl.com/u/");
var isUser1 = pageURL.includes("u/User1/");
document.body.className = document.body.className.replace(" user-page-animated","");
if(isUserPage)
{
if(isUser1)
{
document.body.className += ' user-page-animated';
}
}
}
function sleep(ms)
{
return new Promise(resolve => setTimeout(resolve, ms));
}
</script>
これにより、新しいユーザーごとに「User1」コードをコピーして貼り付けることができますが、ページ読み込み後に50ミリ秒の遅延が発生し、それがエンドユーザーに表示されます(削除すると、何らかの理由で機能しません)。
提供されたコードに、このクラスのbodyへの追加をフックする方法はありますか?これにより、動画のないページと動画のあるページを異なる方法でスタイル設定するために使用できますか?