网站中延迟加载对讲脚本

时间:2019-03-25 18:28:19

标签: javascript jquery html dom intercom

我正在尝试以5秒的延迟加载对讲脚本。

我尝试使用setTimeout函数,但是对讲机无法启动

setTimeout(function () {
    function inter() {
        var w = window;
        var ic = w.Intercom;
        if (typeof ic === "function") {
            ic('reattach_activator');
            ic('update', w.intercomSettings);
        } else {
            var d = document;
            var i = function () {
                i.c(arguments);
            };
            i.q = [];
            i.c = function (args) {
                i.q.push(args);
            };
            w.Intercom = i;
            var l = function () {
                var s = d.createElement('script');
                s.type = 'text/javascript';
                s.async = true;
                s.src = 'https://widget.intercom.io/widget/my_id';
                var x = d.getElementsByTagName('script')[0];
                x.parentNode.insertBefore(s, x);
            };
            if (w.attachEvent) {
                w.attachEvent('onload', l);
            } else {
                w.addEventListener('load', l, false);
            }
        }
        console.log("test")
    };

    inter();
}, 5000);

5秒后出现测试控制台日志,但对讲机不出现。当我不使用功能setTimeout对讲开始时很好。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

试试这个

<script>
(function () {
    var w = window;
    var ic = w.Intercom;
    if (typeof ic === "function") {
        ic('reattach_activator');
        ic('update', w.intercomSettings);
    } else {
        var d = document;
        var i = function () {
            i.c(arguments);
        };
        i.q = [];
        i.c = function (args) {
            i.q.push(args);
        };
        w.Intercom = i;
        var l = function () {
            setTimeout(function () {
                var s = d.createElement('script');
                s.type = 'text/javascript';
                s.async = true;
                s.src = 'https://widget.intercom.io/widget/yourID';
                var x = d.getElementsByTagName('script')[0];
                x.parentNode.insertBefore(s, x);
            }, 5000);
        };
        if (w.attachEvent) {
            w.attachEvent('onload', l);
        } else {
            w.addEventListener('load', l, false);
        }
    }
})();

不确定您是否不再需要它,但将来可能会帮助某人