动态插入脚本

Tags
htmlwebapp
Created
Mar 8, 2019 10:49 AM
  • document.write 写入脚本,可以同步加载执行 // 无可替代,写入的模块脚本需要添加 async/defer 才能执行,可能是兼容问题,非模块脚本不需要
  • 动态插入 <script> 会异步加载执行

document.write 必须在文档初次解析时才有用,这是不推荐使用它的根本原因

动态插入的 <script> 执行顺序: 先插入先执行,和 DOM 顺序无关

insertAdjacentHTML/innerHTML 写入脚本不会加载执行 // 怎么确定一个 <script> 有没有加载/执行过?

不同于 <img> ,修改 <script> 并不能重新加载/执行

在 <body> 中调用 document.body.innerHTML 无效

在 <script> 中包含 “</script>” 时会被 DOM 解析器认为是关闭当前 <script>,需要转义“/”

<body>
  <script>
    document.body.innerHTML = '' // 实际上后面的内容没有受到影响
  </script>
  1
</body>
SuperMade with Super