动态加载外部css或js文件
日期:2007年12月20日 作者: 查看:[大字体 中字体 小字体]-
原理解析:第一步:使用dom创建<script>或者<link>标签,并给他们附加属性,如type等第二步:使用appendChild方法把标签绑定到另一个标签,一般是绑到<head>.
应用:1、提高代码的复用,减少代码量;2、添加一个javascript控制器和 session可以实现动态改变页面样式;3、由于是页面是从上到下依次加载文件的,并且边加载边解释,所以可以添加javascript控制器控制页面文件的加载顺序,如先加载css布局文件,再显示有图片的css美化文件,之后再加载大的falsh文件,或者安内容的重要性来加载。\r
阅读提示:e文不好的初学者可以直接看中文,然后拷贝代码试验下。\r
To load a .js or .css file dynamically, in a nutshell, it means using DOM methods to first create a swanky new "script" or "LINK" element, assign it the appropriate attributes, and finally, use element.appendChild() to add the element to the desired location within the document tree. It sounds a lot more fancy than it really is. Lets see how it all comes together:
以下为引用的内容:
function loadjscssfile(filename, filetype){
if (filetype=="js"){ //判断文件类型
var fileref=document.createElement('script')//创建标签
fileref.setAttribute("type","text/javascript")//定义属性type的值为text/javascript
fileref.setAttribute("src", filename)//文件的地址
}
else if (filetype=="css"){ //判断文件类型
var fileref=document.createElement("link")
fileref.setAttribute("rel", "stylesheet")
fileref.setAttribute("type", "text/css")
fileref.setAttribute("href", filename)
}
if (typeof fileref!="undefined")
document.getElementsByTagName("head")[0].appendChild(fileref)
}loadjscssfile("myscript.js", "js") //打开页面时浏览器动态的加载文件
loadjscssfile("javascript.php", "js") // 打开页面时浏览器动态的加载"javascript.php" ,
loadjscssfile("mystyle.css", "css") //打开页面时浏览器动态的加载.css 文件接下来的工作是绑定到<head>标签。绑定的时候有一个问题就是同一个文件有可能被我们绑定两次,绑定两次浏览器也不会出现异常,但是效率就低了。为了避免\r
这种情况我们可以新增一个全局数组变量,把绑定的文件名字保存在里面,每次绑定前先检查一下是否已经存在,如果存在就提示已经存在,如果不存在就绑定。\r
document.getElementsByTagName("head")[0].appendChild(fileref) By referencing the HEAD element of the page first and then calling appendChild(), this means the newly created element is added to the very end of the HEAD tag. Furthermore, you should be aware that no existing element is harmed in the adding of the new element- that is to say, if you call loadjscssfile("myscript.js", "js") twice, you now end up with two new "script" elements both pointing to the same Javascript file. This is problematic only from an efficiency standpoint, as you'll be adding redundant elements to the page and using unnecessary browser memory in the process. A simple way to prevent the same file from being added more than once is to keep track of the files added by loadjscssfile(), and only load a file if it's new:
var filesadded="" //保存已经绑定文件名字的数组变量
function checkloadjscssfile(filename, filetype){
if (filesadded.indexOf("["+filename+"]")==-1){// indexOf判断数组里是否有某一项
loadjscssfile(filename, filetype)
filesadded+="["+filename+"]" //把文件名字添加到filesadded
}
else
alert("file already added!")//如果已经存在就提示
}
checkloadjscssfile("myscript.js", "js") //success
checkloadjscssfile("myscript.js", "js") //redundant file, so file not addedHere I'm just crudely detecting to see if a file that's set to be added already exists within a list of added files' names stored in variable filesadded before deciding whether to proceed or not.
Ok, moving on, sometimes the situation may require that you actually remove or replace an added .js or .css file. Lets see how that's done next.(出处:急速软件下载学院)
-
- 动态加载外部css或js文件 相关文章:
- ·Vista操作系统中文件扩展名如何显示
- ·Windows Vista中如何显示“超级隐藏”文件
- ·动态加载外部css或js文件
- ·挑战可靠性 6款文件加密软件残酷测试
- ·黑客如何利用文件包含漏洞进行网站入侵
- ·感染虫下载器感染exe文件下载病毒
- ·网页制作解惑:图象文件的路径
- ·缩小SQL Server数据库的日志文件
- ·NTFS与FAT32文件系统互相转换方法
- ·Leopard中用户帐户和文件共享的新变化
- 动态加载外部css或js文件 相关软件
- ·《福尔摩斯和失落的文件》角色扮演试玩
- ·《无冬之夜2》1.04 870最小镜像文件
- ·ISO9000内审全套文件
- ·注册安全工程师考试文件
- ·关于注册土木工程师(水利水电工程)的水利部文件
- ·混凝土结构的重点(VIP格式文件)
- ·砌体结构考试的特点和难点 (VIP格式文件)
- ·2005监理执业考试文件汇编
- ·2004年监理工程师考试文件汇编
- ·Windows系统文件中文详解
- 特别声明:本站除部分特别声明禁止转载的专稿外的其他文章可以自由转载,但请务必注明出处和原始作
- 者.文章版权归文章原始作者所有.对于被本站转载文章的个人和网站,我们表示深深的谢意。如果本站转
- 载的文章有版权问题请联系编辑人员,我们尽快予以更正. 转载请注明来源:http://www.hackhome.com
精品推荐
热点TOP10
- ·用CSS给网页图片添加滤镜效果
- ·学习CSS制作网页的多个经验技巧
- ·站长推荐:53个CSS-不可或缺的技巧
- ·网页中用于构造图表的一些基本CSS代码
- ·DIV CSS网页布局实例:十步学会用CSS建站
- ·DIV CSS网页技巧:网页布局中border断线现象
- ·推荐好文:无懈可击的CSS圆角技术
- ·用Div仿showModalDialog模式菜单的效果
- ·学习CSS制作网页总结的一些经验技巧
- ·网站配色,CSS主色调配色方案
- ·自定义网页超链接下划线的CSS代码
- ·CSS样式表实现效果很好的分页效果源代码
- ·用CSS实现文字垂直居中的代码
- ·网页制作学习:由浅入深详解CSS的margin属性
- ·5款纯div+css制作的弹出菜单(标准且无js)
- ·CSS+DIV+Javascript制作滑动门菜单技术
- ·Css改变鼠标形状的15种效果代码
- ·CSS实现图片阴影效果三部曲(译文)
- ·学习样式表CSS参考:常用的CSS知识
- ·网页制作经验分享:CSS布局如何进行
特别推荐
- ·多个CSS样式表争夺特定选择符的控制权
- ·学习CSS制作网页总结的一些经验技巧
- ·CSS初学者应该保持的一种心态
- ·CSS常见问题和技巧总结
- ·DIV+CSS常见错误汇总
- ·设计中常用的十个CSS技巧
- ·网站配色,CSS主色调配色方案
- ·你是哪个等级的CSS开发人员?
- ·简单的CSS改进网站设计三个技巧
- ·使用CSS样式表让英文文本自动换行
- ·用CSS给网页图片添加滤镜效果
- ·国外译文:网页设计如何使用CSS的选择器模式?
- ·常见的CSS问题的“一站式”的解决方案
- ·学习CSS从何入手技术
- ·CSS注释、命名、继承性、样式排序等CSS技巧的小结
- ·推荐好文:无懈可击的CSS圆角技术
- ·标准网页中用CSS进行段落排版的方法
- ·CSS实现带背景图片的文字链接的方法
- ·网页制作经验分享:CSS布局如何进行
- ·CSS基础:CSS选择符
