zoukankan      html  css  js  c++  java
  • 动态加载JS或CSS

    动态加载JS,支持回调:

    // 动态加载script标签内容
    function loadScript(src, callback, charset) {
            var script = document.createElement('script');
            script.setAttribute('language', 'javascript');
    	if (charset) {
    	        script.setAttribute('charset', charset);
    	}
    	script.setAttribute('src', src);
    	document.getElementsByTagName("head")[0].appendChild(script);
    	if(document.all) {
    		script.onreadystatechange = function() {
    			if(this.readyState == 4 || this.readyState == 'complete' || this.readyState == 'loaded') {
    				callback();
    			}
    		};
    	} else {
    		script.onload = function() {
    			callback();
    		};
    	}
    }
    

     动态加载JS和CSS集合:

    /*
     * o的结构 {js:['a.js'],css:['a.css'],callback:function(){}}
     */
    Common.jsCssLoadRun = function(o) {
    	var count = 0;
    	var scriptTag, linkTag;
    	var scriptFiles = o.js;
    	var cssFiles = o.css;
    	var head = document.getElementsByTagName('head')[0];
    
    	for ( var k = 0; k < cssFiles.length; k++) {
    		linkTag = document.createElement('link');
    		linkTag.type = 'text/css';
    		linkTag.rel = 'stylesheet';
    		linkTag.href = cssFiles[k];
    		head.appendChild(linkTag);
    	}
    
    	for (k = 0; k < scriptFiles.length; k++) {
    		scriptTag = document.createElement('script');
    		scriptTag.type = 'text/javascript';
    		scriptTag.charset = 'utf-8';
    		scriptTag.src = scriptFiles[k];
    		head.appendChild(scriptTag);
    		if (typeof o.callback == "function") {
    			if (scriptTag.readyState) { // IE
    				scriptTag.onreadystatechange = function() {
    					if (scriptTag.readyState == "loaded"
    							|| scriptTag.readyState == "complete") {
    						count++;
    						if (count == scriptFiles.length)
    							o.callback.call();
    					}
    				};
    			} else { // other browsers
    				scriptTag.onload = function() {
    					count++;
    					if (count == scriptFiles.length)
    						o.callback.call();
    				};
    			}
    		}
    	}
    
    	if (scriptFiles.length == 0) {
    		o.callback.call();
    	}
    };
    

     多浏览器支持情况,可参考这里

  • 相关阅读:
    ModelState 错误信息输出
    c# 导入导出excel方法封装
    签名时出错: 未在路径 C:Program Files (x86)Microsoft SDKsWindowsv7.0Ain
    win 10 升级远程连接服务器 要求的函数不受支持
    请求被中止: 未能创建 SSL/TLS 安全通道
    访问iis 出现500.19错误
    ubuntu下交叉编译海思平台下的x264/x265
    C++编程规范
    C++入门--菱形继承与虚继承
    C++入门 --- 纯虚函数与抽象类
  • 原文地址:https://www.cnblogs.com/xyd21c/p/2532743.html
Copyright © 2011-2022 走看看