zendesk - Zendesk Web 小部件状态未正确更新且按钮未隐藏
问题描述
我正在将 Zendesk Web 小部件加载到页面中,这是加载时的事件处理程序
scriptElement.onload = function () {
zE(function () {
$zopim(function () {
$zopim.livechat.button.setHideWhenOffline(true);
$zopim.livechat.setOnStatus(function (status) {
console.log('status',status);
status === 'online' ? $zopim.livechat.button.show() : $zopim.livechat.button.hide();
});
$zopim.livechat.setStatus('offline');
});
});
};
它具有事件处理程序,该setOnStatus
事件处理程序应在状态更改时触发。它似乎在页面最初加载时触发一次。您希望每次我调用该setStatus
方法时也会触发它,但事实并非如此。在我记录状态的地方,它总是“在线”,而且只发生一次。
我要做的是在状态为脱机时强制按钮消失。然而,将状态设置为“离线”并不会隐藏按钮,只会显示离线版本(即让我发送离线消息而不是实时聊天的按钮)。
我认为该setHideWhenOffline
方法可能有所帮助,但在这种情况下似乎没有任何区别。
有任何想法吗?
解决方案
实际上我在这里找到了我需要的解决方案,这可以防止出现脱机按钮。
window.zESettings = {
webWidget: {
contactForm: {
suppress: true
}
}
};
https://developer.zendesk.com/embeddables/docs/widget/settings#suppress
推荐阅读
- ios - 字符串不是空时被验证为空
- identityserver4 - 使用 IdentityServer4 从数据库显式登录/注销自定义用户
- arrays - 不能在属性初始化程序中使用实例成员“国家”;属性初始化程序在“自我”可用之前运行
- javascript - 粘性菜单/导航,固定菜单时框阴影不起作用
- types - 榆树中的“数字”是什么
- javascript - 使用 onclick() 从数据库中获取详细信息
- php - php检测浏览器是在服务器还是客户端上运行
- visual-studio - 添加和替换数据列表框 (Visual Studio 2013)
- python-3.x - Python over SSH - 事件检测不起作用
- microcontroller - 处理 msp430fr5969 上的多优先级中断