GitHub 博客园 Nanakon

使用innerHTML生成的script节点不会发出请求与执行text属性

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
</head>
<body>
    <div id="box"></div>
    <script>
        var boxEl = document.querySelector('#box')
        boxEl.innerHTML = '<script>console.log(1)<\/script><script>console.log(2)<\/script>'
        var script = document.createElement("script")
        var els = boxEl.getElementsByTagName("script")
        if (els.length) { //使用innerHTML生成的script节点不会发出请求与执行text属性
            for (var i = 0, el; el = els[i++]; ) {
                var neo = script.cloneNode(false) //FF不能省略参数
                Array.prototype.forEach.call(el.attributes, function(attr) {
                    neo.setAttribute(attr.name, attr.value)
                })// jshint ignore:line
                neo.text = el.text
                el.parentNode.replaceChild(neo, el)
            }
        }
    </script>
</body>
</html>

 

posted on 2016-11-03 17:41  jzm17173  阅读(118)  评论(0)    收藏  举报

导航

轻音