动态加载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 相关文章推荐
js 判断浏览器使用的语言示例代码
Mar 22 Javascript
JS定义网页表单提交(submit)的方法
Mar 20 Javascript
通过bootstrap全面学习less
Nov 09 Javascript
从零学习node.js之模块规范(一)
Feb 21 Javascript
JavaScript函数参数的传递方式详解
Mar 06 Javascript
JS实现的判断方法、变量是否存在功能示例
Mar 28 Javascript
使用jquery Ajax实现上传附件功能
Oct 23 jQuery
深入了解响应式React Native Echarts组件
May 29 Javascript
vue cli3 配置proxy代理无效的解决
Oct 30 Javascript
vue 自定义右键样式的实例代码
Nov 06 Javascript
详解Vue数据驱动原理
Nov 17 Javascript
vue.js watch经常失效的场景与解决方案
Jan 07 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
PHP正则表达式之定界符和原子介绍
2012/10/05 PHP
PHP小技巧之函数重载
2014/06/02 PHP
THINKPHP项目开发中的日志记录实例分析
2014/12/01 PHP
ThinkPHP5.0多个文件上传后找不到临时文件的修改方法
2018/07/30 PHP
php中的explode()函数实例介绍
2019/01/18 PHP
javascript编程起步(第四课)
2007/02/27 Javascript
javascript里模拟sleep(两种实现方式)
2013/01/25 Javascript
JS截取url中问号后面参数的值信息
2014/04/29 Javascript
JavaScript中读取和保存文件实例
2014/05/08 Javascript
jQueryMobile之Helloworld与页面切换的方法
2015/02/04 Javascript
js实现点击获取验证码倒计时效果
2021/01/28 Javascript
jQuery Validate表单验证深入学习
2015/12/18 Javascript
javascript实现方法调用与方法触发小结
2016/03/26 Javascript
js拖拽的原型声明和用法总结
2016/04/04 Javascript
JavaScript实现的鼠标响应颜色渐变效果完整实例
2017/02/18 Javascript
使用grunt合并压缩js和css文件的方法
2017/03/02 Javascript
使用BootStrap实现标签切换原理解析
2017/03/14 Javascript
详解angularJS动态生成的页面中ng-click无效解决办法
2017/06/19 Javascript
深入讲解xhr(XMLHttpRequest)/jsonp请求之abort
2017/07/26 Javascript
深入理解Vue 组件之间传值
2018/08/16 Javascript
Vuex的actions属性的具体使用
2019/04/14 Javascript
JavaScript常用内置对象用法分析
2019/07/09 Javascript
详解利用nodejs对本地json文件进行增删改查
2019/09/20 NodeJs
微信小程序自定义顶部组件customHeader的示例代码
2020/06/03 Javascript
[03:17]史诗级大片应援2018DOTA2国际邀请赛 致敬每一位坚守遗迹的勇士
2018/07/20 DOTA
Python爬虫之正则表达式基本用法实例分析
2018/08/08 Python
python导入pandas具体步骤方法
2019/06/23 Python
基于python使用tibco ems代码实例
2019/12/20 Python
Pycharm中切换pytorch的环境和配置的教程详解
2020/03/13 Python
python实现梯度下降算法的实例详解
2020/08/17 Python
党校自我鉴定范文
2013/10/02 职场文书
幼儿园长自我鉴定
2013/10/17 职场文书
国际贸易专业个人求职信范文分享
2013/12/14 职场文书
模具专业求职信
2014/06/26 职场文书
慈善献爱心倡议书
2015/04/27 职场文书
节约用电倡议书
2015/04/28 职场文书