如何才能在每个页面“加载”时触发我的自定义统计脚本?

考虑到 Discourse 是一个单页应用程序 (SPA),并且我已经查阅了一些关于这个主题的文档,我仍然不确定如何实现这一点:

  • 我们在页脚中包含一个自定义的 JavaScript 库,该库与我们的统计解决方案进行交互
  • 我们希望通过在每次“页面加载”时触发自定义事件来丰富统计信息,例如每当用户导航到“新”页面时

伪代码:

window.statistic = window.statistic || [];
window.statistic.push({
    action: "page.ready",
    data: {
        page: {
            path: "/c/new-to-this-forum-get-started-here/20/l/new",
            country: "WW",
            language: "en",
}, user: {
            country: "DE",
            loginStatus: "logged_in"
        }
} });

我需要在我的自定义主题中如何以及在哪里放置代码来实现这一点?

谢谢 :slight_smile:

1 个赞

您可能需要使用我们插件 API 中的 onPageChange

在主题中,您需要在 javascripts/discourse/api-initializers/your-initializer.js 中添加类似以下内容:

import { withPluginApi } from "discourse/lib/plugin-api";

export default {
  name: "custom-script-name",

  initialize() {
    withPluginApi("0.8.36", (api) => {
      api.onPageChange(() => {
        // 在此处添加您希望在页面更改时运行的脚本
      });
    });
  },
};
3 个赞

谢谢!问题解决了。

您是否也知道如何从用户的设置中获取 UI 语言?

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.