لقد نسيت ); في نهاية الكود الخاص بك، ومن هنا جاء الخطأ.
قد يعمل شيء مثل هذا (لا تهتم بتحليل URI، فهناك العديد من الطرق للقيام بذلك):
api.onPageChange((url) => {
if (location.pathname.split('/')[1] == "review") {
api.replaceIcon('check', 'full-circle-icon');
}
});
لكن كن على علم بأن onPageChange لا يتم تشغيله عند تحميل الصفحة لأول مرة. إذا فتحت yourforum/reviews مباشرة في متصفحك، فلن يتم تشغيل onPageChange ولن يتم استبدال الأيقونة.
لا أعرف كيف أقوم بتشغيل تغيير الأيقونة عند تحميل الصفحة لأول مرة وعند تغيير الصفحة. ربما هناك طريقة API للقيام بذلك، لكنني لم أجدها. ![]()
بالإضافة إلى ذلك، بمجرد تغيير الأيقونة، ستظل متغيرة في الصفحات الأخرى أثناء تنقلك، لذلك يجب عليك التراجع عن تغيير الأيقونة إذا لم يكن عنوان URL هو /review.
باختصار… أعتقد أن الأمر يتطلب المزيد من العمل ليكون وظيفيًا بالكامل. لاحظ أنني لست خبيرًا في كود Discourse أو JavaScript. ربما يتمكن شخص لديه المزيد من المعرفة من المساعدة بشكل أكبر.
تعديل: الكود لا يعمل عندما تذهب إلى /review للمرة الأولى، وأفترض أن هذا لأن الصفحة تم تحميلها ولم يتم تغيير الأيقونة ديناميكيًا. لذلك، يجب أن نجد طريقة أخرى للقيام بذلك. آسف لأنني لا أستطيع المساعدة أكثر في هذا. ![]()