按照this documentation的指令,我得到了以下代码:
window.zEmbed || (function (d, s) {
var z = $zopim = function (c) { z._.push(c) },
$ = z.s =
d.createElement(s), e = d.getElementsByTagName(s)[0]; z.set = function (o) {
z.set.
_.push(o)
}; z._ = []; z.set._ = []; $.async = !0; $.setAttribute("charset", "utf-8");
$.onload = (event) => {
console.log("chat script has loaded");
};
$.src = "//v2.zopim.com/?@zopimClientID"; z.t = +new Date; $.
type = "text/javascript"; e.parentNode.insertBefore($, e);
})(document, "script");
var onChatStart = function () {
$zopim.livechat.window.show();
window['onChatStart'] && window['onChatStart']();
};
$zopim(function () {
$zopim.livechat.clearAll();
(......)
});问题是$zopim(funtion() {..})回调函数从未调用过,但脚本已成功加载。我知道,基于由以下人员制作的console.log:
$.onload = (event) => {
console.log("chat script has loaded");
};有人知道为什么会这样吗?谢谢
发布于 2019-05-22 19:40:39
问题是,在$zopim脚本完全加载之前,您正在运行它。一旦加载了$zopim对象的所有部分,它将停止循环并运行您的脚本。
var zopimConfig = function() {
$zopim(function() {
$zopim.livechat.clearAll();
(......)
});
};
var waitForZopim = setInterval(function () {
if (
window.$zopim === undefined ||
window.$zopim.livechat === undefined ||
window.$zopim.livechat.departments === undefined
) {
return;
}
zopimConfig();
clearInterval(waitForZopim);
}, 100);等待window.$zopim.livechat.departments是可选的,但是,如果您在部门周围做任何事情,我建议您保留以下内容
https://stackoverflow.com/questions/52165341
复制相似问题