动态加载外部css或js文件
原理解析:第一步:使用dom创建<script>或者<link>标签,并给他们附加属性,如type等第二步:使用appendChild方法把标签绑定到另一个标签,一般是绑到<head>.
应用:
1、提高代码的复用,减少代码量;
2、添加一个javascript控制器和 session可以实现动态改变页面样式;
3、由于是页面是从上到下依次加载文件的,并且边加载边解释,所以可以添加javascript控制器控制页面文件的加载顺序,如先加载css布局文件,再显示有图片的css美化文件,之后再加载大的falsh文件,或者安内容的重要性来加载。
阅读提示:e文不好的初学者可以直接看中文,然后拷贝代码试验下。
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>标签。绑定的时候有一个问题就是同一个文件有可能被我们绑定两次,绑定两次浏览器也不会出现异常,但是效率就低了。为了避免
这种情况我们可以新增一个全局数组变量,把绑定的文件名字保存在里面,每次绑定前先检
天府星空网络科技成都网站制作公司,专业从事成都网站建设 成都网页制作 成都网站设计以精深技术为核心、以专业队伍为支撑。致力于为成都政府网站建设、成都公司网站建设、成都学校网站建设等提供高技术含量的成都网页设计服务。
公司始终以不懈的努力、更高的目标来要求自己。凭借多年的成都网页设计成功经验,公司已拥有数百例经典网站成功案例,是正规的成都网站建设公司。
成都网站建设的专业服务商,强大的成都网页制作技术团队,在网站设计等方面始终保持领先地位,并获得了网页制作公司业界的广泛赞誉和认同。公司重视网页制作质量,打造成都地区网站制作公司知名品牌,以优秀的网站设计技术,创一流的成都网站建设作品。建网站就找天府星空,助您马到成功!
全国统一免费服务电话
800-82-98988
专业网站建设咨询电话
028-66533110
028-66533120
24小时移动总机
15902883120
天府星空05号:张小姐
负责范围:域名主机、网站建设
分机电话:15902883120转665
在线联络:QQ:239270001
电子邮件:sale@tfxk.com
负责范围:业务咨询、疑问解答
分机电话:15902883120转666
在线联络:QQ:239270002
电子邮件:sale@tfxk.com

您当前的位置: