我想在用户每次切换页面时调用一个 JavaScript 函数。
我理解 JavaScript 和 Ruby on Rails 代码,但我不确定在 Discourse 中实现这一点的最佳实践是什么。如有任何建议,我将不胜感激。
附注:我正在使用 Docker 版本的 Discourse。
我想在用户每次切换页面时调用一个 JavaScript 函数。
我理解 JavaScript 和 Ruby on Rails 代码,但我不确定在 Discourse 中实现这一点的最佳实践是什么。如有任何建议,我将不胜感激。
附注:我正在使用 Docker 版本的 Discourse。
根据您的需求,这可能会有很大差异。但若要调用函数或在用户每次切换页面时执行某些操作,您可以使用插件 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>
感谢 @jordan.vidrine 的回复。我会查看这些资源。还有一个问题,可能更与 Docker 化版本相关。在容器内编辑文件有什么最佳实践吗?我可以直接“进入”容器修改文件并重启它吗?
对于某些实例,我认为这应该可行。(我对 Docker 不太熟悉)
您还可以通过访问您站点的 /admin/customize/themes/9/common/head_tag/edit,在 Discourse 管理面板中编辑某些 css 和 html 文件,以及 <script> 标签。