1

我注意到 stackoverflow 有一些 JS 代码会生成:“堆栈溢出需要来自另一个域的外部 JavaScript,它被阻止或无法加载。”的警告。不久前,当 Google Analytics 无法正确加载时,这发生在我身上。

我该怎么做这样的事情?

注意:我可以正确加载所有其他 JS,这仅适用于谷歌分析,有时永远不会加载或永远需要。

当我检查他们的代码时:

StackExchange.init = function () {
    var e = function (a) {
        if (!window.jQuery) if ("complete" != document.readyState) setTimeout(function () {
            e(a)
        }, 1E3);
        else {
            var d = document.createElement("div");
            d.id = "noscript-padding";
            var g = document.createElement("div");
            g.id = "noscript-warning";
            g.innerHTML = a + " requires external JavaScript from another domain, which is blocked or failed to load.";
            document.body.insertBefore(d, document.body.firstChild);
            document.body.appendChild(g)
        }

但我不确定 setTimeout() 发生了什么

4

1 回答 1

0

setTimeout他们等到页面完全加载。该函数调用自身,e直到1000 => 1 秒:document.readyStatecomplete1E3

if ("complete" != document.readyState) setTimeout(function () { e(a) }, 1E3);

如果您想对 Google Analytics 做同样的事情,请查看:javascript - Detect if Google Analytics is loaded?

于 2012-10-02T13:59:19.910 回答