标题可能有点凌乱。基本上我要做的是创建一个自定义函数,它将修改一个对象属性,然后返回该对象,然后调用一个函数。
关于我正在做的事情的一些背景:尝试使用Zendesk API在我的网页上使用Web小部件。基本上,此Web小部件配置为启动时的HelpCenter,然后根据状态显示实时聊天或电子邮件的按钮。这里讨论的主要属性称为“抑制”,它会禁用其中一个小部件页面(聊天,电子邮件和帮助中心)。我的目标是让自定义函数“抑制”3个小部件页面中的2个,因此它只显示一个。然后,名为zE.activate()
的API函数将打开窗口小部件。
我知道这是很多文字,让我告诉你我到目前为止的代码:
<script>
function setChatPopOutProps(window) {
window.zESettings = {
webWidget: {
contactForm: {
suppress: true
},
helpCenter: {
suppress: true
}
}
};
return window.zESettings;
};
function chatPopOut() {
setChatPopOutProps(window);
zE.activate();
};
</script>
现在当我点击已分配chatPopOut()
的按钮时,zE.activate()
可以正常工作,因为它打开了小部件,但基本上setChatPopOutProps(window)
似乎无效。
我也尝试了以下内容:
window
或window.zESettings
zE.activate()
放在zESettings
的末尾或在返回window
或window.zESettings
如果您需要查看操作中的小部件以获得想法,您可以看到它right here。单击右下角的绿色按钮,键入任何内容,您将看到弹出的联系表单按钮。当实时聊天代理可用时,此按钮会更改为聊天按钮。
现在我知道这是我通常应该直接与Zendesk合作的东西,我试过,但他们告诉我,没有什么可以做我想要完成的事情,但我真的觉得这有什么东西给我做我在javascript中做事的方式而不是API的构建方式..
有没有人有想法?我真的很感激。
P.S。这是我的第二篇文章,所以我提前为我在这个问题上犯下的错误道歉。
答案 0 :(得分:0)
可悲的是,事实证明,你想要完成的事情是不可能的。当首次初始化窗口小部件时应用zE.settings,因此无法在不执行诸如刷新页面和重新初始化窗口小部件之类的操作的情况下动态更改窗口小部件设置。从我的代码中我可以看到,我不认为你想每次都刷新页面,并重新初始化小部件只是为了应用你上面列出的那些设置。