Freshdesk - инициализация после тайм-аута - PullRequest
0 голосов
/ 08 октября 2019

как запустить виджет онлайн-чата Freshdesk через 5 секунд?

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);

Не работает ...

1 Ответ

1 голос
/ 16 октября 2019

Вы можете использовать этот фрагмент. Убедитесь, что вы вводите значение 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() enter image description here

Зачем оборачивать все внутри setTimeoutt работать?

Обертывание фрагмента инициализации внутри setTimeout не сработает, поскольку откладывает регистрацию события загрузки (тем самым прослушиватель события загрузки не запускается). Обратный вызов для прослушивателя события загрузки - initiateCall(). Имеет смысл поместить setTimeout () внутри initiateCall() для достижения ожидаемого результата

enter image description here

...