javascript - Freshdesk - 超时后初始化
问题描述
如何在 5 秒后初始化 Freshdesk 在线聊天小部件?
settimeout(function(e) {
function initFreshChat() {
window.fcWidget.init({
token: "token number",
host: "https://wchat.freshchat.com"
});
}
function initialize(i,t){var e;i.getElementById(t)?initFreshChat():((e=i.createElement("script")).id=t,e.async=!0,e.src="https://wchat.freshchat.com/js/widget.js",e.onload=initFreshChat,i.head.appendChild(e))}function initiateCall(){initialize(document,"freshchat-js-sdk")}window.addEventListener?window.addEventListener("load",initiateCall,!1):window.attachEvent("load",initiateCall,!1);
}, 5000);
不工作...
解决方案
您可以使用此代码段。确保输入token
值
<script>
function initFreshChat() {
window.fcWidget.init({
token: "<FC_TOKEN>",
host: "https://wchat.freshchat.com"
});
}
function initialize(i, t) { var e; i.getElementById(t) ? initFreshChat() : ((e = i.createElement("script")).id = t, e.async = !0, e.src = "https://wchat.freshchat.com/js/widget.js", e.onload = initFreshChat, i.head.appendChild(e)) } function initiateCall() { setTimeout(() => { initialize(document, "freshchat-js-sdk") }, 5000) } window.addEventListener ? window.addEventListener("load", initiateCall, !1) : window.attachEvent("load", initiateCall, !1);
</script>
setTimeout 放置在initiateCall()
函数
内部
为什么将所有内容都包含在 setTimeout 中不起作用?
将初始化片段包装在 setTimeout 中不起作用,因为它会延迟加载事件的注册(因此不会触发加载事件侦听器)。加载事件侦听器的回调是initiateCall()
. 将 setTimeout()放入 initiateCall()
其中以实现预期结果是有意义的
推荐阅读
- vb.net - 有没有更简单的方法来处理基本类型列表
- css - 如何防止 Safari 更改样式?
- excel - 在 msgbox 中格式化记录集 getString
- wordpress - 如何在 Woocommerce 的购物车中添加(或删除)免费赠品产品
- javascript - 在 iframe 上复制 HTML 元素并打印
- android-studio - IntelliJ / Android Studio 中的 Kotlin 函数“全部折叠”
- python - 怎么做。我删除了 pandas df 中列名的不需要的字符?
- c# - MVCGrid.Net - 分页不限制结果或页码不显示
- python - 从 pandas 中的函数输出创建 2 列或更多列
- java - 将java项目连接到mongodb数据库