JavaScript动态加载资源【js|css】示例代码
在开发过程中会用到各种第三方的插件,或者自己写在单独文件中的js方法库或者css样式,在html头部总是需要写一大堆的script和link标签,如果想要自己实现动态的引入资源文件,可以使用开源的require.js,如果想要自己做一个简单的实现,参考实例代码如下:
;(function(){
var config = {
idPrefix : 'xxx',
path : function(){
var scripts = document.scripts,
script = scripts[scripts.length - 1],
jsPath = script.src;
return jsPath.substring(0, jsPath.lastIndexOf('/') + 1);
}(),
};
var load = {
sources : function(sourceName){
var head = document.getElementsByTagName('head')[0];
var sourceName = sourceName.replace(/\s/g,'');
var isCssFile = /\.css$/.test(sourceName);
var htmlNode = document.createElement(isCssFile? 'link' : 'script');
var sourceId = config.idPrefix + sourceName.replace(/\.|\//g,'');
if(isCssFile) {
htmlNode.rel = 'stylesheet';
htmlNode.type = 'text/css';
}
htmlNode[isCssFile? 'href' : 'src'] = /^http:\/\//.test(sourceName) ? sourceName : config.path+sourceName;
htmlNode.id = sourceId;
if(!document.getElementById(sourceId)){
head.appendChild(htmlNode);
}
return this;
},
}
//加载
load.sources('css/main.css');
})();
如果动态加载的是css样式,请考虑页面渲染的顺序,动态加载的样式自己一般用于在页面加载完成后的一些交互内容。如果是加载js文件,也要考虑先load再调用相关引入的js文件中的方法。
上面的代码片段适用于加载:上述代码所在js文件的同级文件或其子目录文件!
JavaScript动态加载资源【js|css】示例代码的更多相关文章
- JavaScript动态加载资源
//动态加载样式 function dynamicLoadingCss(path){ if(!path || path.length === 0){ return false; } var head ...
- 用javascript预加载图片、css、js的方法研究
预加载的好处可以让网页更快的呈现给用户,缺点就是可能会增加无用的请求(但图片.css.js这些静态文件可以被缓存),如果用户访问的页面里面的css.js.图片被预加载了,用户打开页面的速度会快很多,提 ...
- JavaScript动态加载js文件
/********************************************************************* * JavaScript动态加载js文件 * 说明: * ...
- Style样式的四种使用(包括用C#代码动态加载资源文件并设置样式)
Posted on 2012-03-23 11:21 祥叔 阅读(2886) 评论(6) 编辑 收藏 在Web开发中,我们通过CSS来控制页面元素的样式,一般常用三种方式: 1. 内联样式 ...
- JavaScript动态加载script方式引用百度地图API 拓展---JavaScript的Promise
上一篇博客JavaScript动态加载script方式引用百度地图API,Uncaught ReferenceError: BMap is not defined 这篇文章中我接触到一个新的单词:Pr ...
- 【Unity3D】Unity3D之 Resources.Load 动态加载资源
[Unity3D]Unity3D之 Resources.Load 动态加载资源 1.Resources.Load:使用这种方式加载资源,首先需要下Asset目录下创建一个名为Resources的文件夹 ...
- 从高德 SDK 学习 Android 动态加载资源
前不久跑去折腾高德 SDK 中的 HUD 功能,相信用过该功能的用户都知道 HUD 界面上的导航转向图标是动态变化的.从高德官方导航 API 文档中 AMapNaviGuide 类的描述可知,导航转向 ...
- 动态加载资源文件(ResourceDictionary)
原文:动态加载资源文件(ResourceDictionary) 在xaml中控件通过绑定静态资源StaticResource来获取样式Style有多种方式: 1.在项目的启动文件App中<App ...
- [UE4]一个好用的虚幻4插件,根据资源名称动态加载资源,GetCurrentLeveName(获得当前地图名称)
下载地址 一.下载与UE4相对应的版本 二.在工程根目录新建Plugins目录,解压插件. 三.如果工程已经打开,则需要重新打开 四.重新打开工程后,右下角会有提示有新插件可用. 五.这个插件提供 ...
随机推荐
- Lock与synchronized 的区别
多次思考过这个问题,都没有形成理论,今天有时间了,我把他总结出来,希望对大家有所帮助 1.ReentrantLock 拥有Synchronized相同的并发性和内存语义,此外还多了 锁投票,定时锁等候 ...
- IFE-20 笔记
将字符串按符号分割成数组 var str = 'aa,43,rt,55'; var arr = str.split(/[^0-9a-zA-Z\u4e00-\u9fa5]+/) //arr = [aa ...
- .NET基础——运算符
这一篇我们来讲解C#中的运算符 1. C#中的算术运算符 5个算数运算符:+ - * / % 它们都是二元运算符,* / % 的运算优先级相同,并且高于 + - ,+ - 的运 ...
- 我的 MarkDown 学习笔记
MarkDown 一种用于写作的轻量级[标记语言].它用简洁的语法代替排版,而不像一般的文字处理软件 Word 或者 Pages 有大量的排版.字体设置等. 如果你对文章的样式没有太多要求,只注重写文 ...
- Influxdb原理详解
本文属于<InfluxDB系列教程>文章系列,该系列共包括以下 15 部分: InfluxDB学习之InfluxDB的安装和简介 InfluxDB学习之InfluxDB的基本概念 Infl ...
- angular1.x 脏检测
写在前面 双向绑定是angular的大亮点,然后支撑它的就是脏检测.一直对脏检测都有一些理解,却没有比较系统的概念. 以下是我阅读网上博文以及angular高级程序设计的理解与总结. 接收指导与批评. ...
- sw代码问题
1.环境版本问题,myeclipse 配 jdk1.7 不能用jdk1.8 :jdk1.6满足不了代码本身 报错为:The type java.io.ObjectInputStream cannot ...
- jmeter连接数据库
新建一个 Thread Group: 新增 JDBC Connection Configuration: 点击新增的 JDBC Connection Configuration ,需要修改的参数包括: ...
- hadoop bug 笔记
1.sqoop从mysql导入数据到hdfs的时候,总是在本地运行,而没有运行在集群上 sqoop 配置文件的问题 在 /usr/lib/sqoop/conf 目录下新增文件 sqoop-env.s ...
- 【转】SQL Server 2008 事件探查器(SQL SERVER Profiler)
跟踪数据库sql语句的执行情况.例:一个系统,用到了sql server 数据库,这个系统共有500张表,当用户在前台页面做某一个操作时,比如插入,登录等等,我们想知道此刻是在对哪一张表操作,打开事件 ...