常见的载入 Javascript (.js) 和CSS (.css)文件的方法一般是在网页的<HEAD>部分添加一个引用。如下所示:
Code (xHtml)
<head><script type="text/javascript" src="myjs.js"></script><link rel="stylesheet" type="text/css" href="main.css" /></head>
在大多数情况下,这样操作完全可以满足我们的需要,但是在 Ajax 应用越来越多的今天,你可能需要一种能够动态加载 *.js 和 *.css 文件的方法。
简单而言,要动态载入一个.js 文件或.css 文件,首先需要利用DOM 方法为文档创建一个"script" 或"link" 元素,然后为它们指定合适的属性,最后利用element.appendChild()方法将元素添加到文档树中理想的位置。以下是实现代码:
Code (Javascript)
function LoadJsCssFile(filename, filetype){if (filetype=="js"){ //如果是.js文件var fileref=document.createElement('script');fileref.setAttribute("type","text/javascript");fileref.setAttribute("src",filename);}else if (filetype=="css"){ //如果是.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"); //动态载入.js 文件LoadJsCssFile("javascript.php", "js"); //将".php" 文件作为.js 文件动态载入LoadJsCssFile("main.css", "css"); //动态载入.css 文件
此外,还可以添加一个新方法,在载入.js 或.css 文件前判断此文件是否已经加载,从而避免重复加载。代码如下:
Code (Javascript)
var filesadded = "" //已经加载的文件列表function CheckLoadJsCssFile(filename, filetype){if (filesadded.indexOf("["+filename+"]")==-1){LoadJsCssFile(filename, filetype);filesadded += "["+filename+"]"; //从表单中加载的文件列表}elsealert('该文件已经添加!');}CheckLoadJsCssFile("myscript.js", "js") //加载成功CheckLoadJsCssFile("myscript.js", "js") //文件存在,不再加载
