栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用div的innerHTML创建的脚本标签不起作用

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用div的innerHTML创建的脚本标签不起作用

这是微不足道的。

如规范中所述8.4解析HTML片段和8.2.3.5其他解析状态标志,)引用:

使用

innerHTML
浏览器时_

  1. 创建一个新的document节点,并将其标记为HTML文档。

2.
如果存在一个context元素,并且context元素的document处于quirks模式,则让document处于quirks模式。否则,如果存在一个context元素,并且context元素的document处于受限怪癖模式,则让document处于受限怪癖模式。否则,将文档保留为非怪异模式。

  1. 创建一个新的HTML解析器,并将其与刚创建的document节点相关联。…

当解析

<script>
内部时

如果在创建解析器时为与解析器关联的文档启用了脚本,则将脚本标记设置为“已启用”,否则为“禁用”。

即使最初为HTML片段解析算法创建了解析器,也可以启用脚本标记,即使在这种情况下脚本元素不执行也是如此。

因此,只要您注入,它就不会执行

innerHTML

使用

innerHTML
将阻止创建
<script>
元素永久执行。

如规范(4.3.1脚本元素,)所述:

动态更改src,type,charset,async和defer属性不会产生直接影响。这些属性仅在以下所述的特定时间使用。

得出 _以下_结论是,它仅

src
在将注入
<script>
到时解析属性
document
(无论哪个,包括使用时创建的临时属性
innerHTML
)。

因此,只要要将脚本注入文档并使其执行,就必须使用

script = document.createElement('script')

将其属性设置为

src
type
,并可能在其中设置内容(使用
script.appendChild(document.createTextNode(content))
),然后将其附加到
document.body



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/568229.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号