动态加载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 相关文章推荐
jquery实现文本框鼠标右击无效以及不能输入的代码
Nov 05 Javascript
Jquery实现三层遍历删除功能代码
Apr 23 Javascript
怎么判断js脚本加载完成
Feb 28 Javascript
JavaScript基础教程之alert弹出提示框实例
Oct 16 Javascript
Node.js的包详细介绍
Jan 14 Javascript
jQuery中的each()详细介绍(推荐)
May 25 Javascript
关于Iframe父页面与子页面之间的相互调用
Nov 22 Javascript
jQuery选择器实例应用
Jan 05 Javascript
JS 中LocalStorage和SessionStorage的使用
Aug 17 Javascript
小程序实现页面顶部选项卡效果
Nov 06 Javascript
零基础之Node.js搭建API服务器的详解
Mar 08 Javascript
IE11下处理Promise及Vue的单项数据流问题
Jul 24 Javascript
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
php 三维饼图的实现代码
2008/09/28 PHP
PHPLog php 程序调试追踪工具
2009/09/09 PHP
PHP批量修改文件名称的方法分析
2017/02/27 PHP
浅谈php://filter的妙用
2019/03/05 PHP
JavaScript中九种常用排序算法
2014/09/02 Javascript
jquery插件NProgress.js制作网页加载进度条
2015/06/05 Javascript
jQuery实现带幻灯的tab滑动切换风格菜单代码
2015/08/27 Javascript
jquery特效 点击展示与隐藏全文
2015/12/09 Javascript
jQuery简单设置文本框回车事件的方法
2016/08/01 Javascript
微信小程序 rich-text的使用方法
2017/08/04 Javascript
Vuejs 单文件组件实例详解
2018/02/09 Javascript
JS双向链表实现与使用方法示例(增加一个previous属性实现)
2019/01/31 Javascript
微信小程序picker组件关于objectArray数据类型的绑定方法
2019/03/13 Javascript
JS校验与最终登陆界面功能完整示例
2020/01/13 Javascript
利用Django框架中select_related和prefetch_related函数对数据库查询优化
2015/04/01 Python
深入解析Python中的__builtins__内建对象
2016/06/21 Python
Flask框架的学习指南之制作简单blog系统
2016/11/20 Python
python用模块zlib压缩与解压字符串和文件的方法
2016/12/16 Python
django启动uwsgi报错的解决方法
2018/04/08 Python
python发送邮件脚本
2018/05/22 Python
python 同时读取多个文件的例子
2019/07/16 Python
django中使用Celery 布式任务队列过程详解
2019/07/29 Python
Python实现PyPDF2处理PDF文件的方法示例
2019/09/25 Python
详解从Django Allauth中进行登录改造小结
2019/12/18 Python
Python作用域与名字空间原理详解
2020/03/21 Python
浅谈Python程序的错误:变量未定义
2020/06/02 Python
Python生成随机验证码代码实例解析
2020/06/09 Python
Python ckeditor富文本编辑器代码实例解析
2020/06/22 Python
美国艺术和工艺品商店:Hobby Lobby
2020/12/09 全球购物
Java面试题:请问一下代码输出是什么
2015/05/27 面试题
环境工程毕业生自荐信
2013/11/17 职场文书
机电一体化自荐信
2013/12/10 职场文书
一般基层干部群众路线教育实践活动个人对照检查材料
2014/11/04 职场文书
三八妇女节致辞
2015/07/31 职场文书
「魔导具师妲莉亚永不妥协~从今天开始的自由职人生活~」1、2卷发售宣传CM公开
2022/03/21 日漫
【海涛解说】pis亲自推荐,其实你从来不会玩NW
2022/04/01 DOTA