在加载javascript之前让页面加载的代码不起作用

在加载javascript之前让页面加载的代码不起作用,javascript,html,Javascript,Html,我有五个外部JavaScript文件,这些文件使页面在加载完成之前等待加载 我已经阅读了很多关于删除渲染阻塞javascript的内容,似乎最好的方法是使用下面的代码在加载javascript之前让页面加载 唯一的问题是我无法在我的网站上使用这些代码 我尝试将其放置在end body标记之前和之后,但什么都没有发生 我遗漏了什么吗?代码有问题还是我必须做的其他事情 谢谢 <script type="text/javascript"> function downloadJSAt

我有五个外部JavaScript文件,这些文件使页面在加载完成之前等待加载

我已经阅读了很多关于删除渲染阻塞javascript的内容,似乎最好的方法是使用下面的代码在加载javascript之前让页面加载

唯一的问题是我无法在我的网站上使用这些代码

我尝试将其放置在end body标记之前和之后,但什么都没有发生

我遗漏了什么吗?代码有问题还是我必须做的其他事情

谢谢

<script type="text/javascript">
    function downloadJSAtOnload() {
        var element = document.createElement("script");
        element.src = "yourjavascripttoload.js";
        document.body.appendChild(element);
    }

   if (window.addEventListener)
       window.addEventListener("load", downloadJSAtOnload, false);
   else if (window.attachEvent)
       window.attachEvent("onload", downloadJSAtOnload);
   else window.onload = downloadJSAtOnload;
</script>

函数downloadJSAtOnload(){
var元素=document.createElement(“脚本”);
element.src=“yourjavascripttoload.js”;
document.body.appendChild(元素);
}
if(window.addEventListener)
addEventListener(“加载”,downloadJSAtOnload,false);
else if(窗口附件)
window.attachEvent(“onload”,downloadJSAtOnload);
else window.onload=下载jsatonload;

尝试对脚本标记使用async属性

或者像这样,

从这里引用

var xhr=new-XMLHttpRequest();
open(“get”,“file1.js”,true);
xhr.onreadystatechange=函数(){
if(xhr.readyState==4){
如果(xhr.status>=200&&xhr.status<300 | | xhr.status==304){
var script=document.createElement(“脚本”);
script.type=“text/javascript”;
script.text=xhr.responseText;
document.body.appendChild(脚本);
//添加到头部
//document.getElementsByTagName(“head”)[0].appendChild(脚本);
}
}
};
xhr.send(空);

首先检查外部脚本文件的确切位置。然后将此脚本置于
标记之前

<script type="text/javascript">
   var script = document.createElement('script');
   script.setAttribute('src', 'http://yourdomian.com/yourjavascripttoload.js');
   script.setAttribute('type', 'text/javascript');
   document.getElementsByTagName('head')[0].appendChild(script);
</script>

为什么不把脚本放在页面底部呢?这是最简单的解决办法。在获取脚本之前,我不会等待
窗口
被完全加载,因为处理渲染阻塞的时间要晚得多。控制台中是否有错误?“它不工作”。。。那么会发生什么呢?有控制台错误吗?@sihao-没有,控制台中没有错误。@斜视-脚本正在加载并正常工作。Yikes。。。为什么我们需要XHR来获取脚本?你们会因为你们在哪里复制了这个代码而受到表扬吗?是的,你们是对的,它也会导致跨来源问题
<script type="text/javascript">
   var script = document.createElement('script');
   script.setAttribute('src', 'http://yourdomian.com/yourjavascripttoload.js');
   script.setAttribute('type', 'text/javascript');
   document.getElementsByTagName('head')[0].appendChild(script);
</script>
$(document).ready(function(){
     $.getScript("yourjavascripttoload.js", function(){
       alert("Script loaded and executed.");
     });
});