如何在js文件中动态加载另一个js文件?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在js文件中动态加载另一个js文件?相关的知识,希望对你有一定的参考价值。
如何在js文件中动态加载另一个js文件?
有三种方法可以实现,分别如下:第一种、直接document.write:
<script language="javascript">
document.write("<script src=\'test.js\'><\\/script>");
</script>
第二种、动态改变已有script的src属性
<script src=\'\' id="s1"></script>
<script language="javascript">
s1.src="test.js"
</script>
第三种、动态创建script元素:
<script>
var oHead = document.getElementsByTagName(\'HEAD\').item(0);
var oScript= document.createElement("script");
oScript.type = "text/javascript";
oScript.src="test.js";
oHead.appendChild( oScript);
</script>
注意:第三种方法使用时,请注意路径。 参考技术A 1、直接document.write
<script language="javascript">
document.write("<script src='test.js'><\/script>");
</script>
2、动态改变已有script的src属性
<script src='' id="s1"></script>
<script language="javascript">
s1.src="test.js"
</script>
3、动态创建script元素
<script>
var oHead = document.getElementsByTagName('HEAD').item(0);
var oScript= document.createElement("script");
oScript.type = "text/javascript";
oScript.src="test.js";
oHead.appendChild( oScript);
</script>
其实原理就是利用dom动态的引入一个js到文件中来~就能和原有的js通信了~本回答被提问者和网友采纳 参考技术B 可以把多个js文件加载到页面就行,何必再在js加载?
<script src="1.js" type="text/javascript"></script>
<script src="2.js" type="text/javascript"></script>
<script src="3.js" type="text/javascript"></script>追问
这个是我的需求啊。我做多个机顶盒浏览器的适配。。。
参考技术C <script>function loadJs(name)
document.write('<script src="'+name+'" type="text/javascript"></script>');
</script>
好像这样就可以了 ~
js判断异步引入的js文件是否加载完毕
在正常的加载过程中,js的加载都是同步的,也就是在加载过程中,浏览器会阻塞接下来的内容的加载。这时候我们就要用到动态加载,动态加载是异步的,如果我们在后边要用到这个动态加载的js文件里的东西,就要保证这个文件加载完成后,再执行下面的内容。
如何判断js是否加载完成?(实现loadScript(url,callback)异步加载脚本,完成后执行回调函数,要求支持IE)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> <title>js判断异步引入的js文件是否加载完毕</title> <meta name="description" content=""> <meta name="keywords" content=""> <link href="" rel="stylesheet"> </head> <body> <p onclick="loadScript(‘ocrad.js‘,null);">js如何判断异步引入的js文件是否加载完毕</p> <script type="text/javascript"> function loadScript(url,callback) //但是,这种加载方式在加载执行完之前会阻止 onload 事件的触发 var _doc=document.getElementsByTagName(‘head‘)[0]; //获取head头部标签元素对象。 var script=document.createElement(‘script‘); //创建一个script标签元素。 script.setAttribute(‘type‘,‘text/javascript‘); //设置script标签的type属性。 script.type=‘text/javascript‘ //script.async=‘async‘; script.setAttribute(‘src‘,url); // script.src=url; script.setAttribute(‘async‘,‘true‘); _doc.appendChild(script); //将script标签附加到head标签中,否则只能够在IE11以下浏览器能够完成判断。 script.onload=script.onreadystatechange=function() if(!this.readyState||this.readyState==‘loaded‘||this.readyState==‘complete‘) console.log(‘js onload‘); script.onload=script.onreadystatechange=null; //删除事件处理函数。 //解决了阻塞 onload 事件触发的问题 ,不是立即开始异步加载 js ,而是在 onload 时才开始异步加载。 if (window.attachEvent) window.attachEvent(‘onload‘, function()loadScript(‘ocrad.js‘,null);); else window.addEventListener(‘load‘, function()loadScript(‘ocrad.js‘,null);, false);</script> </body> </html>
相关链接:https://www.cnblogs.com/hq233/p/7102549.html
https://www.cnblogs.com/telnetzhang/p/5827791.html
以上是关于如何在js文件中动态加载另一个js文件?的主要内容,如果未能解决你的问题,请参考以下文章