动态加载JavaScript文件的3种方式


Posted in Javascript onMay 05, 2018

以下是遇到的几种动态加载JavaScript文件的方式,持续更新中。。。

一、使用document.write/writeln()方式

该种方式可以实现js文件的动态加载,原理就是在重写文档流,这种方式会导致整个页面重绘。

实现方式:

document.writeln("<script src=\"http://lib.sinaapp.com/js/jquery/1.6/jquery.min.js\"></script>");

需要注意的是特殊字符的转义。

二、使用jQuery

使用getScript(url,callback)方法实现动态加载js文件

$.getScript('test.js',function(){
 alert('done');
});

三、使用原生js方法

原理:动态创建script标签,并指定script的src属性

function loadJs(url,callback){
 var script=document.createElement('script');
 script.type="text/javascript";
 if(typeof(callback)!="undefined"){
 if(script.readyState){
 script.onreadystatechange=function(){
  if(script.readyState == "loaded" || script.readyState == "complete"){
  script.onreadystatechange=null;
  callback();
  }
 }
 }else{
 script.onload=function(){
  callback();
 }
 }
 }
 script.src=url;
 document.body.appendChild(script);
 }
 loadJs("test.js",function(){
 alert('done');
 });

还可以使用同样的原理动态加载css文件,只不过插入的的父节点是head标签。

以上就是动态加载JavaScript文件的方法,希望对大家的学习有所帮助。

Javascript 相关文章推荐
图片完美缩放
Sep 07 Javascript
javascript实现上传图片并预览的效果实现代码
Apr 11 Javascript
基于jQuery的输入框在光标位置插入内容, 并选中
Oct 29 Javascript
将form表单中的元素转换成对象的方法适用表单提交
May 02 Javascript
关于javaScript注册click事件传递参数的不成功问题
Jul 18 Javascript
怎么限制input的text里输入的值只能是数字(正则、js)
May 16 Javascript
浅析ES6的八进制与二进制整数字面量
Aug 30 Javascript
js多个物体运动功能实例分析
Dec 20 Javascript
Bootstrap轮播图学习使用
Feb 10 Javascript
解决浏览器会自动填充密码的问题
Apr 28 Javascript
Layui点击图片弹框预览的实现方法
Sep 16 Javascript
vue中控制mock在开发环境使用,在生产环境禁用方式
Apr 06 Vue.js
Node.js的Koa实现JWT用户认证方法
May 05 #Javascript
浅谈vue项目可以从哪些方面进行优化
May 05 #Javascript
Angular模版驱动表单的使用总结
May 05 #Javascript
浅谈Angular HttpClient简单入门
May 04 #Javascript
Vue项目全局配置微信分享思路详解
May 04 #Javascript
vue嵌套路由与404重定向实现方法分析
May 04 #Javascript
Vue.js最佳实践(五招助你成为vuejs大师)
May 04 #Javascript
You might like
用Socket发送电子邮件
2006/10/09 PHP
php中显示数组与对象的实现代码
2011/04/18 PHP
PHP5.2下preg_replace函数的问题
2015/05/08 PHP
PHP中的use关键字及文件的加载详解
2016/11/28 PHP
PHP文字转图片功能原理与实现方法分析
2017/08/31 PHP
Laravel框架中Blade模板的用法示例
2017/08/30 PHP
使用JavaScript检测Firefox浏览器是否启用了Firebug的代码
2010/12/28 Javascript
jquery 与NVelocity 产生冲突的解决方法
2011/06/13 Javascript
使用jquery制作弹出框效果
2015/04/03 Javascript
介绍JavaScript中Math.abs()方法的使用
2015/06/14 Javascript
JS给Textarea文本框添加行号的方法
2015/08/20 Javascript
AngularJS使用ng-class动态增减class样式的方法示例
2017/05/18 Javascript
微信小程序分页加载的实例代码
2017/07/11 Javascript
bootstrap table实现点击翻页功能 可记录上下页选中的行
2017/09/28 Javascript
vue项目中api接口管理总结
2018/04/20 Javascript
JS实现动态生成html table表格的方法分析
2018/07/11 Javascript
原生js代码能实现call和bind吗
2019/07/31 Javascript
如何利用 JS 脚本实现网页全自动秒杀抢购功能
2020/10/12 Javascript
[02:11]2016国际邀请赛中国区预选赛最美TA采访现场玩家
2016/06/28 DOTA
Python中给List添加元素的4种方法分享
2014/11/28 Python
python爬虫获取淘宝天猫商品详细参数
2020/06/23 Python
python批量复制图片到另一个文件夹
2018/09/17 Python
Python内置random模块生成随机数的方法
2019/05/31 Python
python爬虫scrapy基于CrawlSpider类的全站数据爬取示例解析
2021/02/20 Python
python在协程中增加任务实例操作
2021/02/28 Python
详解HTML5中ol标签的用法
2015/09/08 HTML / CSS
美国首屈一指的高品质珠宝设计师和零售商:Allurez
2018/01/23 全球购物
计算机专业推荐信范文
2013/11/27 职场文书
行政助理岗位职责范文
2013/12/03 职场文书
中英文求职信范文
2014/01/27 职场文书
平安建设实施方案
2014/03/19 职场文书
小学生自我评价100字(15篇)
2014/09/18 职场文书
2014年学校财务工作总结
2014/12/06 职场文书
民事调解协议书
2016/03/21 职场文书
Python3 如何开启自带http服务
2021/05/18 Python
详解JavaScript中Arguments对象用途
2021/08/30 Javascript