코드 끝에 );를 잊어버렸기 때문에 오류가 발생한 것입니다.
다음과 같은 코드가 작동할 수 있습니다 (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로 이동할 때 코드가 작동하지 않는 것 같습니다. 이는 페이지가 로드되었지만 아이콘이 동적으로 변경되지 않기 때문인 것으로 추정됩니다. 따라서 이를 수행하는 다른 방법을 찾아야 합니다. 이 부분에 대해 더 도움을 드릴 수 없어 죄송합니다. ![]()