【问题标题】:How can I add a Freshdesk widget during runtime in Angular?如何在运行时在 Angular 中添加 Freshdesk 小部件?
【发布时间】:2020-09-08 10:38:11
【问题描述】:

我正在使用 Angular 9 并尝试将 Freshdesk 小部件添加到我的应用程序中。该小部件的 sn-p 如下所示:

<script>
window.fwSettings={
'widget_id': <MY PERSONAL ID>,
'locale': 'en'
};
!function(){if("function"!=typeof window.FreshworksWidget){var n=function(){n.q.push(arguments)};n.q=[],window.FreshworksWidget=n}}() 

如果我将 sn-p 直接添加到我的 index.html 文件中,它可以正常工作,但我希望能够以编程方式将 locale 属性设置为当前用户选择的任何语言。

这意味着这个 sn-p 需要在运行时添加,但我不知道如何在 Angular 中添加它。

有什么想法吗?

【问题讨论】:

标签: angular freshdesk


【解决方案1】:

我解决了。在我的app.component.ts 中,我在加载应用程序区域设置后将 sn-p 放入函数中:

loadFreshDesk(locale): void {
   window.fwSettings = {
      widget_id: MY_WIDGET_ID,
      locale: MY_FRESH_DESK_LOCALE,
    };

    !(function () {
      if ('function' !== typeof window.FreshworksWidget) {
        const n = function () {
          n.q.push(arguments);
        };
        (n.q = []), (window.FreshworksWidget = n);
      }
    })();
    const script = document.createElement('script');
    script.type = 'text/javascript';
    script.src = 'https://widget.freshworks.com/widgets/MY_WIDGET_ID.js';
    document.getElementsByTagName('head')[0].appendChild(script);
}

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 2010-12-25
  • 1970-01-01
  • 1970-01-01
  • 2015-11-10
  • 2020-03-04
  • 1970-01-01
相关资源
最近更新 更多