我可以简化只向DOM添加脚本的脚本吗?

时间:2019-11-17 13:44:12

标签: javascript dom

我以此为起点,但意识到它取决于存在的div。

我是否可以好奇地使用// loads a script using the DOM and an optional argument to bust the cache function loadScript(path, bust) { console.log("Loading | " + path + " | " + bust) const ref = document.getElementsByTagName( 'div' )[ 0 ]; const script = document.createElement( 'script' ); if(bust){ path = path + '?cache_buster=' + bust; } script.src = path; ref.parentNode.insertBefore( script, ref ); } 将该脚本直接附加到document.body?

// loads a script using document.body and an optional argument to bust the cache
function loadScript(path, bust) {
  if(bust){
    path = path + '?cache_buster=' + bust;
  }
  document.body.appendChild(document.createElement('script')).src = path;
  console.log("Loading | " + path + " | ");
}

每个答案

{% set arr = arr | filter((v, k) => k != '99') %}

1 个答案:

答案 0 :(得分:1)

  

我是否可以好奇是否可以直接使用appendChild将脚本直接附加到document.body

当然可以。只要脚本不依赖于它在DOM中的位置(例如,只要不引用document.currentScript来查看附近的元素),<script>标签的位置就无关紧要

document.body.appendChild(document.createElement('script')).src = path;

您甚至不需要<body>存在(在某些特殊情况下甚至不需要<head>)-您可以在任意位置插入<script>