- 浏览: 43372 次
- 性别:
- 来自: 苏州
最近访客 更多访客>>
最新评论
-
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 1934... -
jQuery、prototype、mootools、YUI框架比较
2009-12-15 16:36 1880个人觉得:mootools 更符合面向对象,易扩展,对于熟悉面 ... -
10个新的最有前途的JavaScript框架
2009-11-16 11:40 11171. SproutCore SproutCore ... -
Javascript乱弹设计模式系列(0) - 面向对象基础以及接口和继承类的实现
2009-11-06 16:15 868理论知识 1. 首先Javascript是弱类型语言,它定义 ... -
JavaScript的gzip静态压缩传输方法
2009-11-02 09:41 1534传统的JS压缩(删除注释,删除多余空格等)提供的 ... -
JS动态载入外部JS文件
2009-11-02 09:28 2119我们经常把一大堆的JS文件在页面载入的时候就全部载入,可这样就 ... -
Js 跨域调用问题
2009-10-21 16:30 955Javascript出于安全性考虑,是不允许跨域调用其他页面的 ... -
什么是flickr及flickr的简史
2009-10-14 10:42 2488Flickr为一家提供免费及 ... -
国外开放API面面观:15个API介绍!
2009-10-13 22:42 2114国外的2.0服务多又成熟,API是专又全,除了现在过热的Fac ... -
悟透JavaScript (2)
2009-09-28 10:29 994在JavaScript内部,对象的属性和方法追溯机制是通过所谓 ... -
悟透JavaScript(1)
2009-09-28 09:18 745引子 编程世界里 ...
相关推荐
JS动态加载CSS 在可换主题的界面中具有很重要的意义,用户可以根据自己的浏览习惯选择自己喜欢的页面显示方式,下面详细说明。 希望下面的方法对你有帮助。 (1)使用JavaScript动态加载Js文件 /*JavaScript动态...
这种方式称为"CSS in JS",它允许我们在JavaScript中编写和管理CSS,增强了CSS的动态性和模块化。 总的来说,"css/js文件模块化组件"的核心理念是将复杂的项目拆分成可管理和可复用的部分,这有助于提升代码的...
在提供的压缩包文件中,`Browes 判断.asp`和`Browes 浏览器判断.asp`可能是用于服务器端进行浏览器检测的ASP文件,而`CheckBr(动态加载Css).js`可能是用于客户端JavaScript动态加载CSS并进行浏览器判断的脚本。...
以下将详细解释如何使用JavaScript实现动态加载CSS,并探讨其应用场景和优化策略。 首先,我们来看一个简单的JavaScript函数,用于动态添加CSS链接到页面头部: ```javascript function addStyle(stylePath) { ...
JavaScript动态加载资源文件是指在页面加载完成后,根据需要从服务器动态加载额外的脚本(js文件)或样式表(css文件)。这种方法可以减少初始页面加载时的资源消耗,提高页面的加载速度。动态加载可以通过两种方式...
在网站开发中,CSS(层叠样式表)、JavaScript和图片(img)是构建动态、交互性和视觉吸引力的网站后台不可或缺的元素。以下是关于这些关键组件的详细解释: **CSS(层叠样式表)** CSS是一种样式语言,用于描述...
// 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动态加载工具
下面我们将深入探讨如何在Android的WebView中加载和使用JS、CSS以及它们带来的优势。 1. Android WebView加载HTML Android的WebView可以通过调用`loadData()`或`loadDataWithBaseURL()`方法加载HTML字符串,或者...
动态加载CSS和JS文件还可以与其他优化技术结合,如延迟加载(lazy loading)、按需加载(on-demand loading)以及异步加载(async loading),以进一步提高页面性能。同时,需要注意的是,虽然动态加载可以提升用户...
与将CSS文件静态地写死在页面中不同,动态加载CSS允许开发者根据需要在运行时引入额外的样式表,例如,实现按需加载或条件加载等功能。以下总结了一些JavaScript实现动态加载CSS文件的方法。 ### 使用@import加载...
### JavaScript 实现动态导入 JS 与 CSS 等静态资源文件的方法 在现代 Web 开发中,动态地加载脚本和样式表是非常常见的需求。这不仅有助于提高网站性能(例如,按需加载资源),还能增强用户体验(例如,在特定...
现在,我们可以使用`dynamicLoading.css("test.css")`和`dynamicLoading.js("test.js")`来分别动态加载CSS和JavaScript文件。 这种方法的一个优点是兼容性好,可以在各种浏览器中正常工作。然而,需要注意的是,...
使用CSS变量,我们可以用JavaScript动态地改变全局样式。首先在CSS中定义变量: ```css :root { --primary-color: blue; } ``` 然后在JavaScript中修改这些变量: ```javascript document.documentElement.style...
例如,你可以将CSS文件放在"static/css"子目录下,JS文件放在"static/js"子目录,而图片文件则放在"static/img"子目录。 对于CSS(层叠样式表),它是用来控制网页布局和样式的语言。在这个案例中,CSS文件可能包含...
2. **JavaScript延迟加载**:lazyload.js 文件可能是一个实现延迟加载功能的JavaScript库。它通常通过监听滚动事件来判断元素是否进入视口,一旦进入,就立即加载对应的资源。例如,可以使用Intersection Observer ...