您在代码末尾忘记了 );,因此出现了错误。
类似这样的代码可能有效(不用在意 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 时,代码不起作用,我猜这是因为页面已加载,图标没有动态更改。所以,我们应该找到另一种方法来做到这一点。抱歉我无法提供更多帮助。![]()