如何在<body>末尾的<head>添加脚本中添加脚本

Pet*_*r R 18 javascript jquery dom

客户端正在使用Sharetribe,它允许您通过管理员添加自定义JS,但仅限于头部.我希望我的脚本在jQuery之后加载,但jQuery在主体的末尾加载.如何在doc加载后编写将主要脚本添加到最后的vanilla JS?

我试过这个:

<script>
    var script   = document.createElement("script");
    script.type  = "text/javascript";
    script.src   = "http://cdn...";
    document.body.appendChild(script);

    var script2 = document.createElement("script");
    script2.type  = "text/javascript";
    script2.text  = "$(SOME.CODE.HERE);"
    document.body.appendChild(script2);
</script>
Run Code Online (Sandbox Code Playgroud)

但它在文档加载完成之前执行(特别是在jQuery可用之前).我能想到的唯一一件事是设置一个计时器,但这似乎有点儿.

有什么建议?

Tus*_*har 41

使用DOMContentLoaded事件:

在完全加载和解析文档时触发DOMContentLoaded事件,而不等待样式表,图像和子帧完成加载(加载事件可用于检测完全加载的页面).

document.addEventListener("DOMContentLoaded", function (event) {
  console.log("DOM fully loaded and parsed");

  // Your code here
});
Run Code Online (Sandbox Code Playgroud)

DOMContentLoadedready事件相同jQuery.

文档