你的浏览器不支持canvas

Enjoy life!

javascript - 为什么直接把script标签赋值给innerHTML不起作用

Date: Author: JM

本文章采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可。

  • 以下内容部分源于:
    • 《JavaScript高级程序设计(第3版)》 11.3.6
  • 最近在做一个 demo ==》 XSS-防御-输出检查,但是发现,将 <script> 标签直接赋值给某元素的 innerHTML,却一点作用都没有。

一、为什么不起作用?

1.1 原因

  • 因为,这个是被规定的:在大多数浏览器中,通过 innerHTML 插入 <script> 元素并不会执行其中的脚本。

1.2 demo

  • 过程展示

demo

二、重构script节点

  • 既然直接将 <script> 赋值给 innerHTML 不行,我们就重构它,让它成功运行。
  • 过程展示

demo


对于本文内容有问题或建议的小伙伴,欢迎在文章底部留言交流讨论。