javascript实现动态导入js与css等静态资源文件的方法


Posted in Javascript onJuly 25, 2015

本文实例讲述了javascript实现动态导入js与css等静态资源文件的方法。分享给大家供大家参考。具体实现方法如下:

/**
 * 动态导入静态资源文件js/css
 */
var $import = function(){
  return function(rId, res, callback){
    if(res && 'string' == typeof res){
      if(rId){
        if($($('#' + rId), $('head')).length>0){
          return;
        }
      }
      //加载资源文件
      var sType = res.substring(res.lastIndexOf('.') + 1);
      // 支持js/css
      if(sType && ('js' == sType || 'css' == sType)){
        var isScript = (sType == 'js');
        var tag = isScript ? 'script' : 'link';
        var head = document.getElementsByTagName('head')[0];
        // 创建节点
        var linkScript = document.createElement(tag);
        linkScript.type = isScript ? 'text/javascript' : 'text/css';
        linkScript.charset = 'UTF-8';
        if(!isScript){
          linkScript.rel = 'stylesheet';
        }
        isScript ? linkScript.src = res : linkScript.href = res;
        if(callback && 'function' == typeof callback){
          if (linkScript.addEventListener){
            linkScript.addEventListener('load', function(){
              callback.call();
            }, false);
          } else if (linkScript.attachEvent) {
            linkScript.attachEvent('onreadystatechange', function(){
              var target = window.event.srcElement;
              if (target.readyState == 'complete') {
                callback.call();
              }
            });
          }
        }
        head.appendChild(linkScript);
      }
    }
  };
}();

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
JavaScript 学习笔记一些小技巧
Mar 28 Javascript
DIY jquery plugin - tabs标签切换实现代码
Dec 11 Javascript
九种js弹出对话框的方法总结
Mar 12 Javascript
node.js中的http.createClient方法使用说明
Dec 15 Javascript
javascript的BOM汇总
Jul 16 Javascript
利用jsonp与代理服务器方案解决跨域问题
Sep 14 Javascript
vue 实现axios拦截、页面跳转和token 验证
Jul 17 Javascript
js中时间格式化的几种方法
Jul 22 Javascript
Vue-cli3.X使用px2 rem遇到的问题及解决方法
Aug 08 Javascript
关于vue项目中搜索节流的实现代码
Sep 17 Javascript
浅谈Vue3.0新版API之composition-api入坑指南
Apr 30 Javascript
javascript实现下拉菜单效果
Feb 09 Javascript
javascript创建动态表单的方法
Jul 25 #Javascript
javascript文件加载管理简单实现方法
Jul 25 #Javascript
javascript页面倒计时实例
Jul 25 #Javascript
javascript解析xml实现省市县三级联动的方法
Jul 25 #Javascript
基于javascript实现单选及多选的向右和向左移动实例
Jul 25 #Javascript
javascript实现信息增删改查的方法
Jul 25 #Javascript
jQuery菜单插件用法实例
Jul 25 #Javascript
You might like
强烈声明: 不要使用(include/require)_once
2013/06/06 PHP
php中preg_replace正则替换用法分析【一次替换多个值】
2017/01/17 PHP
SCP远程VPS快速搬家和WDCP升级php5.3安装memcached和eaccelerator教程
2017/07/27 PHP
子窗口、父窗口和Silverlight之间的相互调用
2010/08/16 Javascript
基于jquery插件实现常见的幻灯片效果
2013/11/01 Javascript
jQuery向上遍历DOM树之parents(),parent(),closest()之间的区别
2013/12/02 Javascript
jQuery中hasClass()方法用法实例
2015/01/06 Javascript
js中不同的height, top的区别对比
2015/09/24 Javascript
原生js实现淘宝购物车功能
2020/06/23 Javascript
ReactNative之FlatList的具体使用方法
2017/11/29 Javascript
vue2.0 axios跨域并渲染的问题解决方法
2018/03/08 Javascript
JS实现的JSON数组去重算法示例
2018/04/11 Javascript
ios中视频的最后一桢问题解决
2019/05/14 Javascript
详解node和ES6的模块导出与导入
2020/02/19 Javascript
js实现弹幕墙效果
2020/12/10 Javascript
[45:34]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.18
2020/12/19 DOTA
[46:58]完美世界DOTA2联赛PWL S3 Forest vs LBZS 第一场 12.17
2020/12/19 DOTA
python实现系统状态监测和故障转移实例方法
2013/11/18 Python
浅谈python中截取字符函数strip,lstrip,rstrip
2015/07/17 Python
Python类的动态修改的实例方法
2017/03/24 Python
Python中Selenium模拟JQuery滑动解锁实例
2017/07/26 Python
浅谈python 里面的单下划线与双下划线的区别
2017/12/01 Python
Python二叉树定义与遍历方法实例分析
2018/05/25 Python
PyTorch中topk函数的用法详解
2020/01/02 Python
浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式
2020/05/25 Python
Python爬虫使用bs4方法实现数据解析
2020/08/25 Python
奇怪的鱼:Weird Fish
2018/03/18 全球购物
英国受欢迎的运动鞋和街头服装商店:Footasylum
2018/06/12 全球购物
2014年大学生自我评价
2014/01/19 职场文书
高中毕业自我评价
2014/02/08 职场文书
教师节促销活动方案
2014/02/14 职场文书
党员领导干部廉洁从政承诺书
2014/03/27 职场文书
大学班级文化建设方案
2014/05/06 职场文书
品牌推广策划方案
2014/05/28 职场文书
2015毕业生实习期工作总结
2015/04/09 职场文书
spring IOC容器的Bean管理XML自动装配过程
2022/05/30 Java/Android