如何在单页应用程序 (SPA) 的特定页面中隐藏对讲机聊天小部件?

Gil*_*zan 10 javascript single-page-application intercom

考虑一个用 vanilla JS 编写的单页应用程序(以避免特定于框架的答案)。

我有一个默认加载 Intercom 的应用程序,但我想在特定页面中隐藏小部件。

这应该可以从 Intercom 本身实现,如帮助中心的这篇文章所示,但它在单页应用程序中并不真正起作用 - 无论在 Intercom 中配置什么,都会显示小部件。

一种选择是在页面上找到小部件并为给定页面手动隐藏它,但这感觉、听起来和味道都像是一种黑客攻击(当返回小部件应该出现的页面时,它需要重新启用小部件) .

那么,关于如何为 SPA 做到这一点,有什么好的做法吗?

ric*_*rbh 24

如果要以编程方式隐藏对讲机启动器,可以使用update命令执行此操作。

隐藏:

Intercom('update', {
  "hide_default_launcher": true
});
Run Code Online (Sandbox Code Playgroud)

并再次显示它(当您的下一页加载时,或者触发应该显示它的事件时)。

Intercom('update', {
  "hide_default_launcher": false
});
Run Code Online (Sandbox Code Playgroud)

我在一个有角度的 SPA 中使用了这种精确的技术,将它隐藏在屏幕上,它遮挡了一些按钮。

  • 提示:在尝试访问窗口对象之前,值得检查窗口对象上是否存在“Intercom”(“窗口中的“Intercom”),因为某些用户的浏览器扩展会阻止下载 Intercom 脚本。执行此检查将避免运行时出现错误。 (4认同)