问答详情
源自:2-2 深入domManip(上)

innerHTML不会执行脚本的代码,如果支持defer除外?

那位老师可以解答一下呢?

提问者:Selevlle 2014-12-16 14:41

个回答

  • Selevlle
    2014-12-16 16:52:42

    谢谢老师 ,居然亲自回复 ,泪奔感动啊.以前就在博客看您发的微博 ,受益匪浅.

  • 艾伦Aaron
    2014-12-16 16:23:15

    div.innerHTML = "<script>alert(1)</srcript>" 这个代码不会执行

    例外的情况:

    IE9之前的

    满足几个条件

    1:script设定defer属性

    2: script元素必须位于有作用域元素之后,因为script被认为是无作用域的(页面中不可见)

    换句话说,这样设置

    div.innerHTML = "<div><script defer>alert(1)</srcript></div>"  可以执行

    jQuery在内部通过会有一个domManip方法,把这些问题都方方面面处理掉了


  • 赵小布
    2014-12-16 15:13:50

    defer 跟 innerHTML 什么关系