基于jquery的动态加载css加载成功后调用函数

/**
 * 加载css样式
 * @param style 样式的地址
 * @param stamp 样式的时间戳
 * @param callback 成功之后的处理函数
 */
function __loadStyle(style, stamp, callback){
	var stamp = stamp||(new Date() - 0);
	
	if(!window.__STYLES){
		window.__STYLES = [];
	}
		
	if($.inArray(style, window.__STYLES) == -1){
		var obj = document.createElement("link");
		$('<link rel="stylesheet" href="' + style + "?t=" + stamp + '" type="text/css"/>');
		obj.setAttribute("rel", "stylesheet");
		obj.setAttribute("href", style + "?t=" + stamp);
		obj.setAttribute("type", "text/css");
		
		$(obj).bind('load', function(){
			window.__STYLES.push(style);
			if(callback instanceof Function){
				callback();
			}
		});
		
		$('head').get(0).appendChild(obj);
	}else{
		if(callback instanceof Function){
			callback();
		}		
	}
}

jquery下动态加载脚本,getScript函数可以实现加载js,其原理是ajax获取到js代码之后eval代码;如果有跨域则使用动态载入脚本(script标签)
KindEditor的loadStyle函数可以加载css,但是没有成功之后的回调
直接使用$('link')在ie下样式加载貌似会出错,故使用createElement

你可能感兴趣的:(前端 jsloader)