如果代理与 Live Chat Inc 离线,则隐藏 div

Hide div if agents offline with Live Chat Inc

我在我的网站上使用 LiveChat,如果没有可用的代理,我会尝试显示 div,使用他们的指南 here

Javascript

LC_API.on_after_load = function() {
    if (LC_API.agents_are_available()) {
        $("#ChatLink2").hide(); 
    } else {
        $("#ChatLink2").show();    
    }   
};

HTML

<div class='ChatLink2' id='ChatLink2'>Currently Unavailable</div>

但是,div ChatLink2 在没有可用代理时不显示

似乎是 LiveChat 和 JQuery 的竞争条件。下面检查 LC 可用性并使用 vanilla JS 而不是 jQuery.

如果代理在初始化后离线,还包括状态更改回调。

var waitForLC = setInterval(function () {
    if (window.LC_API === undefined) {
        return;
    }
    clearInterval(waitForLC);
    var showUnavailableStatus = function(show){
        var statusDiv = document.getElementById("ChatLink2");
        var style = show ? "block" : "none";
        statusDiv.style.display = style;
    }
    LC_API.on_after_load = function() {
        if (LC_API.agents_are_available()) {
            showUnavailableStatus(false);
        } else {
            showUnavailableStatus(true);
        }
    };
    LC_API.on_chat_state_changed = function(data) {
        showUnavailableStatus(data.state==="offline");
    };
}, 100);