`

动态加载css和java script

    博客分类:
  • web
阅读更多
var portalLoader = {
	dojo : {
		url:"/Dojo/dojo-release-1.6.1/"
	},
	call : (function() {
		function hasFile(tag, url) {
			var contains = false;
			var files = document.getElementsByTagName(tag);
			var type = tag == "script" ? "src" : "href";
			for ( var i = 0, len = files.length; i < len; i++) {
				if (files[i].getAttribute(type) == url) {
					contains = true;
					break;
				}
			}
			return contains;
		}

		function fileExt(url) {
			var att = url.split('.');
			var ext = att[att.length - 1].toLowerCase();
			return ext;
		}

		function loadFile(element, callback, parent) {
			var p = parent && parent != undefined ? parent : "head";
			var h = document.getElementsByTagName(p)[0];
			h.appendChild(element);
			if (callback) {
				callback();
			}
		}
		
		function loadCssFile(files, callback) {
			var urls = files && typeof (files) == "string" ? [ files ] : files;
			for ( var i = 0, len = urls.length; i < len; i++) {
				var cssFile = document.createElement("link");
				cssFile.setAttribute('type', 'text/css');
				cssFile.setAttribute('rel', 'stylesheet');
				var filePath = portalLoader.dojo.url + urls[i];
				cssFile.setAttribute('href', filePath);
				if (!hasFile("link", filePath)) {
					loadFile(cssFile, callback);
				}
			}
		}		

		function loadScript(files, callback, parent) {
			var urls = files && typeof (files) == "string" ? [ files ] : files;
			for ( var i = 0, len = urls.length; i < len; i++) {
				var script = document.createElement("script");
				script.setAttribute('type', 'text/javascript');
				var filePath = portalLoader.dojo.url + urls[i];
				script.setAttribute('src', filePath);
				if (!hasFile("script", filePath)) {
					loadFile(script, callback, parent);
				}
			}
		}		

		function toArray(obj) {
			if (obj.length == null)
				return new Array(obj);
			else
				return obj;
		}

		function tryToArray(obj) {
			try {
				return toArray(obj);
			} catch (e) {
				try {
					return obj.split(",");
				} catch (e) {
					return obj;
				}
			}
		}
		
		function includeFile(options) {
			if (options) {
				var cssFiles = tryToArray(options.css);
				var scriptFiles = tryToArray(options.script);

				loadCssFile(cssFiles, function() {
					//loadScript(scriptFiles, null, "body");
					loadScript(scriptFiles);
				});
			}
		}
		
		return {
			require : includeFile
		};
	})()
};

var require = function(options) {
	portalLoader.call.require(options);
};

 

<script type="text/javascript" src="js/portalLoader.js"></script>

<script type="text/javascript">
	require({         
		css:["dojo/resources/dojo.css","dijit/themes/tundra/tundra.css"],        
		script:["dojo/dojo.js"]    
	});
</script>

 

分享到:
评论

相关推荐

    使用javaScript动态加载Js文件和Css文件

    JS动态加载CSS 在可换主题的界面中具有很重要的意义,用户可以根据自己的浏览习惯选择自己喜欢的页面显示方式,下面详细说明。 希望下面的方法对你有帮助。 (1)使用JavaScript动态加载Js文件 /*JavaScript动态...

    javascript 动态加载 css 方法总结

    1. 用在外部CSS文件中加载必须的文件 @importurl(style.css); //只能用在CSS文件中或者style标签中 2. 简单的在页面中加载一个外部CSS文件 document.createStyleSheet(cssFile); 2. 用createElement方法创建CSS的...

    javascript 动态修改css样式方法汇总(四种方法)

    在很多情况下,都需要对网页上元素的样式进行动态的修改。...下面是一段html代码和css代码用来解释上面方法的区别的。 CSS .style1{margin:10px auto ;background-color:#9999FF; display:block;color:Whit

    java开源包4

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包11

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包6

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包101

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包9

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包5

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    JAVA上百实例源码以及开源项目

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    java开源包8

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包10

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    JAVA上百实例源码以及开源项目源代码

     util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印图片的路径,水印一般格式是gif,png,这种图片可以设置透明度、水印旋转等,可以参考代码...

    java开源包3

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包1

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    javascript实现动态加载CSS

    代码如下: [removed]  function addStyle(stylePath) {  var container = document.getElementsByTagName(“head”)[0];  var addStyle = document.createElement(“link”);  addStyle.rel = “stylesheet”;...

    java开源包2

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    java开源包7

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    Java资源包01

    ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能文件(包括上传和下 载),浏览远程FTP服务器上的目录和文件,创建、删除、重命,移动远程目录和文件。ftp4j提供多种方式连接到远程FTP服务器包括...

    预加载css或javascript的js代码

    预加载文件一般有两种常用的方式:xhr和动态插入节点的方式。动态插入节点是最为简单也最为广泛的一种异步加载方式(例如yui的Get模块),然后使用动态插入节点方法加载的文件都会在加载后立即执行,javascript的执行...

Global site tag (gtag.js) - Google Analytics