动态加载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 相关文章推荐
Prototype使用指南之form.js
Jan 10 Javascript
js控制容器隐藏出现防止样式变化的两种方法
Apr 25 Javascript
HTML5使用DeviceOrientation实现摇一摇功能
Jun 05 Javascript
JavaScript获得url查询参数的方法
Jul 02 Javascript
javascript创建动态表单的方法
Jul 25 Javascript
2016年最热门的15 款代码语法高亮工具,美化你的代码
Jan 06 Javascript
JavaScript实现带播放列表的音乐播放器实例分享
Mar 07 Javascript
ES6新特性之Symbol类型用法分析
Mar 31 Javascript
vue使用Element组件时v-for循环里的表单项验证方法
Jun 28 Javascript
jquery简单实现纵向的无缝滚动代码实例
Apr 01 jQuery
将RGB值转换为灰度值的简单算法
Oct 09 Javascript
详解Vue后台管理系统开发日常总结(组件PageHeader)
Nov 01 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/11 PHP
php 定义404页面的实现代码
2012/11/19 PHP
php读取目录所有文件信息dir示例
2014/03/18 PHP
PHP 二维数组根据某个字段排序的具体实现
2014/06/03 PHP
PHP使用http_build_query()构造URL字符串的方法
2016/04/02 PHP
PHP错误和异常处理功能模块示例
2016/11/12 PHP
js wmp操作代码小结(音乐连播功能)
2008/11/08 Javascript
javascript 获取函数形参个数
2014/07/31 Javascript
jquery制作属于自己的select自定义样式
2015/11/23 Javascript
JS实现搜索关键词的智能提示功能
2017/07/07 Javascript
js链表操作(实例讲解)
2017/08/29 Javascript
javascript中call()、apply()的区别
2019/03/21 Javascript
vue 自定义右键样式的实例代码
2019/11/06 Javascript
在Vue中使用mockjs代码实例
2020/11/25 Vue.js
[49:35]KG vs SECRET 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
探寻python多线程ctrl+c退出问题解决方案
2014/10/23 Python
Python写的服务监控程序实例
2015/01/31 Python
python实现将元祖转换成数组的方法
2015/05/04 Python
python xlsxwriter库生成图表的应用示例
2018/03/16 Python
Python魔法方法 容器部方法详解
2020/01/02 Python
Django Admin设置应用程序及模型顺序方法详解
2020/04/01 Python
解决Python安装cryptography报错问题
2020/09/03 Python
html5+css3之制作header实例与更新
2020/12/21 HTML / CSS
HTML5实现自带进度条和滑块滑杆效果
2018/04/17 HTML / CSS
德国高端单身人士交友网站:ElitePartner
2018/12/02 全球购物
简单的项目建议书模板
2014/03/12 职场文书
网吧最新创业计划书范文
2014/03/27 职场文书
八一建军节演讲稿
2014/09/10 职场文书
简易离婚协议书(范本)
2014/10/25 职场文书
2015年企业新年寄语
2014/12/08 职场文书
2014年学校办公室工作总结
2014/12/19 职场文书
地道战观后感500字
2015/06/04 职场文书
安全生产感想
2015/08/07 职场文书
2016年度优秀辅导员事迹材料
2016/02/26 职场文书
如何用python识别滑块验证码中的缺口
2021/04/01 Python
详解MySQL中的pid与socket
2021/06/15 MySQL