你可以在a.js中动态导入b.js:代码如下:
function loadJSFile(jsSrc) {
var head = document.getElementsByTagName("head")[0];
var scripts = head.getElementsByTagName("SCRIPT");
for (var i = 0; i < scripts.length; i++) {
var src = scripts[i].src;
if (src == jsSrc) {
return false;
}
}
var script = document.createElement("SCRIPT");
script.language = "javascript";
script.src = jsSrc;
script.defer = true;
head.appendChild(script);
return true;
}
在初始化的时候调用上面的函数
function loadJSFile(jsSrc) {
var head = document.getElementsByTagName("head")[0];
var scripts = head.getElementsByTagName("SCRIPT");
for (var i = 0; i < scripts.length; i++) {
var src = scripts[i].src;
if (src == jsSrc) {
return false;
}
}
var script = document.createElement("SCRIPT");
script.language = "javascript";
script.src = jsSrc;
script.defer = true;
head.appendChild(script);
return true;
}
在初始化的时候调用上面的函数
这个是IE ONLY。
function include(path,type,title){
var s,i,t;
if(arguments.length < 1){
return ;
}
if(arguments.length == 1){
type = "js";
}
switch(type.toLowerCase()){
case "css":
t = document.getElementsByTagName("link");
for(i=0;i<t.length;i++){
if(t[i].href && t[i].href.indexOf(path)!=-1){
return;
}
}
s=document.createElement("link");
s.rel="alternate stylesheet";
s.type="text/css";
s.href=path;
s.title=title;
s.disabled=false;
break;
case "js":
case "javascript":
default:
t = document.getElementsByTagName("script");
for(i=0;i<t.length;i++){
if(t[i].src && t[i].src.indexOf(path)!=-1){
return;
}
}
s=document.createElement("script");
s.type="text/javascript";
s.src=path;
break;
}
var h=document.getElementsByTagName("head")[0];
h.appendChild(s);
}
function $import(path,type,title){
var s,i;
if(type=="js")
{
var ss=document.getElementsByTagName("script");
for(i=0;i<ss.length;i++){
if(ss[i].src && ss[i].src.indexOf(path)!=-1)return;
}
s=document.createElement("script");
s.type="text/javascript";
s.src=path;
}else if(type=="css")
{
var ls=document.getElementsByTagName("link");
for(i=0;i<ls.length;i++){
if(ls[i].href && ls[i].href.indexOf(path)!=-1)return;
}
s=document.createElement("link");
s.rel="alternate stylesheet";
s.type="text/css";
s.href=path;
s.title=title;
s.disabled=false;
}
else return;
var head=document.getElementsByTagName("head")[0];
head.appendChild(s);
}
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>Javascript includes - ready state and onload</title><script type="text/javascript">var css;
function include_css(css_file) {
var html_doc = document.getElementsByTagName('head')[0];
css = document.createElement('link');
css.setAttribute('rel', 'stylesheet');
css.setAttribute('type', 'text/css');
css.setAttribute('href', css_file);
html_doc.appendChild(css); // alert state change
css.onreadystatechange = function () {
if (css.readyState == 'complete') {
alert('CSS onreadystatechange fired');
}
}
css.onload = function () {
alert('CSS onload fired');
} return false;
}
var js;
function include_js(file) {
var html_doc = document.getElementsByTagName('head')[0];
js = document.createElement('script');
js.setAttribute('type', 'text/javascript');
js.setAttribute('src', file);
html_doc.appendChild(js); js.onreadystatechange = function () {
if (js.readyState == 'complete') {
alert('JS onreadystate fired');
}
} js.onload = function () {
alert('JS onload fired');
} return false;
}
</script>
</head>
<body> <h1>javascript includes testing - testing readyState and onload</h1>
This is a test file, part of the second follow up to the "<strong>javascript includes</strong>" article.
<br />
To see the article, <a href="http://www.phpied.com/javascript-include">click here</a>.
To see the follow-up article, <a href="http://www.phpied.com/javascript-include-ready">click here</a>.
To see the second follow-up article, <a href="http://www.phpied.com/javascript-include-ready-onload">click here</a>.
<p>
</p>
<ul>
<li style="cursor: pointer" onclick="include_css('1.css')">Click to load 1.css</li>
<li style="cursor: pointer" onclick="include_js('jsalert.js')">Click to load jsready.js</li>
</ul></body>
</html>