常见的载入 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"){
var fileref=document.createElement('script');
fileref.setAttribute("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 != )
document.getElementsByTagName("head")[0].appendChild(fileref)
}
-
LoadJsCssFile("myscript.js", "js");
LoadJsCssFile("javascript.php", "js");
LoadJsCssFile("main.css", "css");
此外,还可以添加一个新方法,在载入.js 或.css 文件前判断此文件是否已经加载,从而避免重复加载。代码如下:
Code (Javascript)
var filesadded = ""
-
function CheckLoadJsCssFile(filename, filetype){
if (filesadded.indexOf("["+filename+"]")==-1){
LoadJsCssFile(filename, filetype);
filesadded += "["+filename+"]";
}
else
alert('该文件已经添加!');
}
-
CheckLoadJsCssFile("myscript.js", "js")
CheckLoadJsCssFile("myscript.js", "js")