innerHTML插入<script>脚本标签运行失败

415 阅读1分钟

最近在封装使用谷歌admanager固定广告去封装激励视频广告和插屏广告,中间出现了个小插曲,就是admanager的广告没出现,代码也没有问题。最终检查出来是因为使用innerHTML中插入<script>,直接把谷歌脚本引入(之前这么做目的是为了减少把谷歌脚本拆得分散),导致浏览器没有运行执行脚本

1、innerHTML中插入<script>浏览器,未执行原因

image.png

2、解决方法:

  • 可以使用创建<script>,然后append页面中也可以正常运行脚本
        const script = document.createElement("script");
        script.innerHTML = "alert(1)"
        window.onload=()=>{document.body.append(script)}
  • 如果一定要在innerHTML中添加脚本,可以使用正则把innerHTML里面脚本匹配出来后,在单独运行
  • 也可以直接引入外部脚本

参考:

innerHTML