- 浏览: 42229 次
- 性别:
- 来自: 苏州
最近访客 更多访客>>
最新评论
-
dgy:
good boy
Velocity 用户指南手册中文版 -
sujun7758:
good
Velocity 用户指南手册中文版
先导入js文件。
DynamicLoad.js文件代码如下:
function DynamicLoad(){ //属性 var Self = this; //对象自身 //功能:加载指定的文件 //参数:src——需要被加载的文件 //返回:(无) this.Load = function(src){ if (Self.IsLoaded(src)) //判断该文件是否已经加载了 { Self.OnLoaded(src); return; } else //如果没有加载,动态创建 { var objDynamic; //动态创建的对象 var type = Self.GetSrcType(src); //文件类型 if (type == "js" || type == "vbs") { objDynamic = document.createElement("script"); objDynamic.src = src; if (type == "js") { objDynamic.type = "text/javascript"; objDynamic.language = "javascript"; } else { objDynamic.type = "text/vbscript"; objDynamic.language = "vbscript"; } } else if (type == "css") { objDynamic = document.createElement("link"); objDynamic.rel = "stylesheet"; objDynamic.type = "text/css"; objDynamic.href = src; } else { Self.OnFailed(src); return; } document.getElementsByTagName("head")[0].appendChild(objDynamic); //将创建的对象插入到HEAD节中 objDynamic.onload = objDynamic.onreadystatechange = function() //加载过程中状态改变引发的事件 { //在此函数中this指针指的是s结点对象,而不是JsLoader实例, //所以必须用self来调用onsuccess事件,下同。 if (this.readyState && this.readyState == "loading") return; else Self.OnLoaded(src); }; objDynamic.onerror = function() //加载过程中发生错误引发的事件 { document.getElementsByTagName("head")[0].removeChild(objDynamic); Self.OnFailed(src); }; } }; //功能:判断是否已经加载了某文件 //参数:src——需要被检查的文件 //返回:返回是否已经加载了该文件 this.IsLoaded = function(src){ var isLoaded = false; //假设没有加载 var type = Self.GetSrcType(src); //得到文件的类型 var i; //用于循环的索引 if (type == "js" || type == "vbs") { var scripts = document.getElementsByTagName("script"); //得到所有的脚本对象集合 for (i = 0; i < scripts.length; i++) //依次判断每个script对象 { if (scripts[i].src && scripts[i].src.indexOf(src) != -1) { if (scripts[i].readyState == "loaded" || scripts[i].readyState == "complete") { isLoaded = true; break; } } } } else if (type == "css") { var links = document.getElementsByTagName("link"); //得到所有的link对象集合 for (i = 0; i < links.length; i++) //依次判断每个link对象 { if (links[i].href && links[i].href.indexOf(src) != -1) { if (links[i].readyState == "loaded" || links[i].readyState == "complete" || links[i].readyState == "interactive") { isLoaded = true; break; } } } } return isLoaded; }; //功能:得到文件的类型(即扩展名) //参数:src——文件名 //返回:返回文件的类型 this.GetSrcType = function(src){ var type = ""; var lastIndex = src.lastIndexOf("."); if (lastIndex != -1) { type = src.substr(lastIndex + 1); } return type; }; //功能:当文件加载完成时发生的事件 //参数:src——加载完成的文件 //返回:(无) this.OnLoaded = function(src){ Self.LoadedCallback(src); }; //功能:文件加载完成时执行的回调函数 //参数:src——加载完的文件 //返回:(无) this.LoadedCallback = function(src){ }; //功能:当文件加载过程中发生错误时发生的事件 //参数:src——正在加载的文件 //返回:(无) this.OnFailed = function(src){ Self.FailedCallback(src); }; //功能:当文件加载失败时执行的回调函数 //参数:src——加载失败的文件 //返回:(无) this.FailedCallback = function(src){ }; }
页面代码:
<html> <body> <script language="javascript" type="text/javascript" src="DynamicLoad.js"> </script> <script language="javascript" type="text/javascript"> var dl = new DynamicLoad(); function test1(){ dl.Load("css.css"); } function test2(){ dl.Load("Admin_style.css"); } </script> <input type="button" class="Button" onclick="test2()" value="submit"/> <br/> <input type="button" class="Button" value="button" onclick="test1()"/> <br/> <a href="">aaa</a> </body> </html>
注释:
js文件方法本文件包含了一个名为DynamicLoad的类,该类可以为页面动态加载js、vbs和css文件。
属性: Self——对象自身(该属性为设计时使用,程序中请尽量避免使用该属性。)
方法: Load(src)——加载指定的文件。如果加载成功,引发OnLoaded事件;如果加载失败,引发OnFailed事件。您可以通过重载回调函数LoadedCallback和FailedCallback来执行加载对应的操作。
IsLoaded(src)——判断指定的文件是否已经加载完毕。
GetSrcType(src)——得到文件类型(即扩展名)
LoadedCallback(src)——文件加载成功后执行的回调函数。请重载该方法,以处理加载文件成功之后的操作。
FailedCallback(src)——文件加载失败后执行的回调函数。请重载该方法,以处理加载文件失败之后的操作。
事件: OnLoaded(src)——文件加载成功事件。
OnFailed(src)——文件加载失败事件。
/***************************/
var dl=new DynamicLoad(); //初始化DynamicLoad对象
alert(dl.IsLoaded("DynamicLoad.js")); //判断是否已经加载了文件DynamicLoad.js
dl.Load("HttpCookie.js"); //加载HttpCookie.js
alert(dl.IsLoaded("HttpCookie.js")); //判断是否已经加载了文件HttpCookie.js。加载需要时间,一般情况下这里返回false;如果过一小段时间再判断,很可能返回true。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/dcju002/archive/2009/02/12/3881835.aspx
发表评论
-
网页特殊符号HTML代码大全
2010-06-11 09:00 1870... -
jQuery、prototype、mootools、YUI框架比较
2009-12-15 16:36 1859个人觉得:mootools 更符合面向对象,易扩展,对于熟悉面 ... -
10个新的最有前途的JavaScript框架
2009-11-16 11:40 10811. SproutCore SproutCore ... -
Javascript乱弹设计模式系列(0) - 面向对象基础以及接口和继承类的实现
2009-11-06 16:15 836理论知识 1. 首先Javascript是弱类型语言,它定义 ... -
JavaScript的gzip静态压缩传输方法
2009-11-02 09:41 1482传统的JS压缩(删除注释,删除多余空格等)提供的 ... -
JS动态载入外部JS文件
2009-11-02 09:28 2075我们经常把一大堆的JS文件在页面载入的时候就全部载入,可这样就 ... -
Js 跨域调用问题
2009-10-21 16:30 934Javascript出于安全性考虑,是不允许跨域调用其他页面的 ... -
什么是flickr及flickr的简史
2009-10-14 10:42 2433Flickr为一家提供免费及 ... -
国外开放API面面观:15个API介绍!
2009-10-13 22:42 2016国外的2.0服务多又成熟,API是专又全,除了现在过热的Fac ... -
悟透JavaScript (2)
2009-09-28 10:29 975在JavaScript内部,对象的属性和方法追溯机制是通过所谓 ... -
悟透JavaScript(1)
2009-09-28 09:18 711引子 编程世界里 ...
相关推荐
JS动态加载CSS 在可换主题的界面中具有很重要的意义,用户可以根据自己的浏览习惯选择自己喜欢的页面显示方式,下面详细说明。 希望下面的方法对你有帮助。 (1)使用JavaScript动态加载Js文件 /*JavaScript动态...
// JavaScript Document ;(function($){ $.extend({ includePath: '', include: function(file) { var files = typeof file == "string" ? [file]:file; for (var i = 0; i ; i++) { var name = files[i]...
javascript、css动态加载工具
3、由于是页面是从上到下依次加载文件的,并且边加载边解释,所以可以添加javascript控制器控制页面文件的加载顺序,如先加载css布局文件,再显示有图片的css美化文件,之后再加载大的falsh文件,或者安内容的重要...
javascript实现动态加载CSS.docx
主要介绍了JavaScript动态加载CSS和JS文件,需要的朋友可以参考下
1. 用在外部CSS文件中加载必须的文件 @importurl(style.css); //只能用在CSS文件中或者style标签中 2. 简单的在页面中加载一个外部CSS文件 document.createStyleSheet(cssFile); 2. 用createElement方法创建CSS的...
Zencart Css Javascript Loader-CJ Loader插件的主要功能: 1.一定程度上 提升zencart网站的性能,用户体验. ...可以为不同的浏览器制定加载不同的 css和javascript 文件,这点在做 IE6兼容的时候 还比较实用.
本文简单介绍动态加载、移除、替换js/css文件 。有时候我们在写前端的时候,会有出现需要动态加载一些东如css js 这样能减轻用户加载负担,从而提高响应效率。下面贴出代码。 [removed] //动态加载一个js/css文件 ...
动态载入 JavaScript/Csss 文件 传统加载外部JavaScript(*.js) 或者 Css(*.css)文件的方法是直接在<head>标签里面进行添加: 代码如下: <head> [removed][removed] <link rel=”stylesheet” type=”...
现在大量网站为了追求用户体验,使用了大量使用CSS和JS文件。 而网页加载的时间大部分是消耗在资源请求部分。通过 Chrome自带调试工具,或者 Firebug 可观察到: 资源加载的等待时间经常占到总时间的 50%以上。 再...
主要介绍了IE8中使用javascript动态加载CSS的解决方法,此方法也不是很完美,需要的朋友参考下吧
/*动态添加js或css,URL:文件路径,FileType:文件类型(js/css)*/ function AddJsFiles(URL,FileType){ var oHead = document.getElementsByTagName('HEAD').item(0); var addheadfile; if(FileType=="js"){ ...
3、由于是页面是从上到下依次加载文件的,并且边加载边解释,所以可以添加javascript控制器控制页面文件的加载顺序,如先加载css布局文件,再显示有图片的css美化文件,之后再加载大的falsh文件,或者安内容的重要性...
动态加载外部JavaScript和CSS文件 安装 npm install load.js 如何使用? const load = require ( 'load' ) ; /* you could use jquery functions here */ await load . js ( 'jquery.js' ) ; /* load menu css and...
在网页中加载闪存文件系统中的图片、CSS和JavaScript资源。index.html:ESP8266开发板建立的网站首页 main.css:控制网页的css(层叠样式表) JavaScript.js和clock.js:在页面中显示日期和时钟的JavaScript文件。这两...
ArcGIS api for Javascript3.21版本加载天地图 HBuild工程