页面切换时调用函数

我想在用户每次切换页面时调用一个 JavaScript 函数。
我理解 JavaScript 和 Ruby on Rails 代码,但我不确定在 Discourse 中实现这一点的最佳实践是什么。如有任何建议,我将不胜感激。

附注:我正在使用 Docker 版本的 Discourse。

1 个赞

根据您的需求,这可能会有很大差异。但若要调用函数或在用户每次切换页面时执行某些操作,您可以使用插件 API。

您可以在此阅读 Discourse 主题/组件(自定义 JavaScript 等)开发者指南

您还可以在此找到 withPluginApi 相关信息

以下是一个简单示例,用于记录当前 URL 和页面标题。

我在 common/head_tag.html 文件中实现了此功能。该文件可在 /admin/customize/themes/9/common/head_tag/edit 处编辑。

<script type="text/discourse-plugin" version="0.8">
    api.onPageChange((url, title) => {
        console.log(url, title);
    });
</script>
6 个赞

感谢 @jordan.vidrine 的回复。我会查看这些资源。还有一个问题,可能更与 Docker 化版本相关。在容器内编辑文件有什么最佳实践吗?我可以直接“进入”容器修改文件并重启它吗?

1 个赞

对于某些实例,我认为这应该可行。(我对 Docker 不太熟悉)

您还可以通过访问您站点的 /admin/customize/themes/9/common/head_tag/edit,在 Discourse 管理面板中编辑某些 csshtml 文件,以及 <script> 标签。

1 个赞