在某个js文件中引入(动态加载)其它js文件的方法总结
分类:计算机 | 前端 | JavaScript | js的引用 1801
更新:2022-02-16 18:31:36编辑
说明
有时候我们需要在一个js文件中引入另外一个js文件,例如有多个html需要用到两个js文件,而我们想减少每个页面引用js文件的个数,如果在一个js文件中引用了另外一个js文件,那么我们在多个html页面中就可以只引用一个js文件了,下面总结几种实现方式:
方式1:document.write
在调用文件的顶部直接加入如下代码:
document.write("<script src='js/encryptionJS/SM-NoModule.js'><\/script>");
由于这种方式是异步加载,document.write会重写界面,不实用。而且谷歌浏览器会报警告Parser was blocked due to document.write()
方式2:jQuery的$.getScript
$.getScript("test.js",[callback]); //url
$.getScript方法是异步加载js文件,为了避免js执行出现逻辑顺序错误的问题,被加载的js文件中最好不要有函数执行的操作;
$.getScript可接受第二个参数,这个参数是一个回调函数,当js文件加载完成后,此回调函数执行,相应的业务逻辑(例如ajax请求)可以在此函数中调用。
方式3:动态创建script元素(异步)
<script type="text/javascript">
function loadJs(url){
var script=document.createElement('script');
script.type="text/javascript";
script.src=url;
document.body.appendChild(script);
}
loadJs("main.js");
loadJs("tooltip.js");
loadJs("button.js");
loadJs("bootstrap.js");
</script>
方式4:
function addScript(url){
var script = document.createElement('script');
script.setAttribute('type','text/javascript');
script.setAttribute('src',url);
document.getElementsByTagName('head')[0].appendChild(script);
}
总结
1、网上有一种说法是不推荐使用document.write的方式,但是我刚开始用的是jQuery的$.getScript,发现有问题,换成document.write以后就好了。
参考资料
https://blog.csdn.net/weixin_39291021/article/details/105389634
猿导航
阅读排行榜
- 1vue和el-table使用经验-如何刷新表格数据10948
- 2three.js加载3D瓦片和3dtiles数据生成交互式地图的开源项目9497
- 3Microsoft Visual C++ Redistributable是什么,有什么作用?7274
- 4mybatis使用经验——mybatis-spring-boot-starter和mybatis的版本对应关系表(持续更新~)5842
- 5uni-app使用经验—vue页面和html页面如何互相调用接口并传参5480
- 6Intellij IDEA下的版本控制VCS的启用与关闭4894
- 7Spring学习经验—@ResponseBody注解的使用说明4890
- 8Druid异常解决经验—java.sql.SQLException url not set4513
- 9如何用批处理命令(bat脚本)启动和停止windows服务4282
- 10nuxt.js项目中如何添加和使用全局变量4158
- 11解决SpringBoot使用maven下载不了jar包的问题3497
- 12linux中解压tar.gz文件报错“gzip: stdin: invalid compressed data--format violated”3394
- 13nuxtjs asyncData使用经验—如何发起多个axios请求并携带参数3246
- 14在Nuxt.js项目的head中引用外部js文件3088
- 15在NVIDIA控制面板设置参数时提示“拒绝访问 无法应用选定的设置到您的系统”的解决方法之一3066