当前位置: 首页 > 知识库问答 >
问题:

javascript - 打包后文件,appendChild一个script标签(执行完这些js)之后,又.parentNode.removeChild把这个标签移除了,为什么要这么做?

关项明
2024-04-30

查看一段打包后的js代码,appendChild一个script标签(执行完这些js)之后,又.parentNode.removeChild把这个标签移除了,为什么要这么做,为什么要移除了?

                var s, c;                if (void 0 !== r)                    for (var l = document.getElementsByTagName("script"), u = 0; u < l.length; u++) {                        var d = l[u];                        if (d.getAttribute("src") == o || d.getAttribute("data-webpack") == t + r) {                            s = d;                            break                        }                    }                s || (c = !0,                s = document.createElement("script"),                s.charset = "utf-8",                s.timeout = 120,                n.nc && s.setAttribute("nonce", n.nc),                s.setAttribute("data-webpack", t + r),                s.src = o),                e[o] = [a];                var m = function(t, n) {                    s.onerror = s.onload = null,                    clearTimeout(p);                    var a = e[o];                    if (delete e[o],                    s.parentNode && s.parentNode.removeChild(s), // 这里                    a && a.forEach((function(e) {                        return e(n)                    }                    )),                    t)                        return t(n)                }                  , p = setTimeout(m.bind(null, void 0, {                    type: "timeout",                    target: s                }), 12e4);                s.onerror = m.bind(null, s.onerror),                s.onload = m.bind(null, s.onload),                c && document.head.appendChild(s) // 这里

共有1个答案

于意智
2024-04-30

StackOverflow - Why is the script tag removed in JavaScript Injection from a Google Chrome Extension?

一些脚本只需要运行一次即可,运行一次之后可以安全的删除。

 类似资料: