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

来源:2-2 深入domManip(上)

Selevlle

2014-12-16 14:41

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

写回答 关注

3回答

  • 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方法,把这些问题都方方面面处理掉了


    leowor...

    ..............................

    2014-12-23 13:47:26

    共 1 条回复 >

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

    defer 跟 innerHTML 什么关系

jQuery源码解析(DOM与核心模块)

由浅入深的剖析jQuery库的设计与实现,揭开框架背后的秘密

71439 学习 · 82 问题

查看课程

相似问题