zoukankan      html  css  js  c++  java
  • JavaScript动态加载资源【js|css】示例代码

    在开发过程中会用到各种第三方的插件,或者自己写在单独文件中的js方法库或者css样式,在html头部总是需要写一大堆的scriptlink标签,如果想要自己实现动态的引入资源文件,可以使用开源的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文件的同级文件或其子目录文件!

  • 相关阅读:
    自制404页面
    Http错误代码含义
    数据访问基础类(基于Access数据库)
    NTILE函数在SQL Server 2000中的实现方法
    矩阵螺旋输出
    分区排名方案和排名值效率分析【图文+测试代码】
    安装eclipse axis2 插件(links 方式)
    perforce关闭服务后无法重启
    A4纸网页打印中对应像素的设定和换算
    2005数据库脚本在SQL2000上执行
  • 原文地址:https://www.cnblogs.com/skyfynn/p/5900343.html
Copyright © 2011-2022 走看看