我正在尝试以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对讲开始时很好。有什么想法吗?
答案 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);
}
}
})();
不确定您是否不再需要它,但将来可能会帮助某人