1、例如有这样一个html,里面有一个按钮,当按下时调用b.js文件中的方法b()。而b()中又要调用a.js文件中的方法a()。那我们应该怎么做呢?
首先,在html中引入b.js,并在</body>之后加入引用语句。必须注意,将要引入的Js文件代码放在</body>下面。
<html>
<body>
<input type="button" value="ok" onclick="javascript:b()">
</body>
<!--这里引用要放在body下面-->
<script language="JAVASCRIPT" src='b.js'></script>
</html>
b.js文件中引入a.js,内容如下:
new_element=document.createElement("script")
new_element.setAttribute("type","text/javascript")
new_element.setAttribute("src","a.js")// 在这里引入了a.js
document.body.appendChild(new_element)
function b() {
a()
}
在b.js文件中前4行代码中我们引入了a.js文件,并在第7行代码中调用了a.js代码中的a()方法。
注意:<script language="JAVASCRIPT" src='b.js'></script>一定要放在body下面。
因为在b.js中用到了body(document.body.appendChild(new_element))
如果将引如b.js的代码放在body上面,也就是说, 进入页面后,还没有生成body就已经执行b.js里的document.body.appendChild(new_element)了。 这时body不存在就会抛javascript错误。
这样应该是可以的,不过注意:1、document.write("<script src='2.js'></script>")
改成
document.write("<scri"+"pt type='text/javascript' src='2.js'></scr"+"ipt>")
将之要放到1.js中第一行
==============================测试html页面========================
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<script type="text/javascript" src="1.js"></script>
</HEAD>
<BODY onload="javascript:f1()">
</BODY>
</HTML>
============================== 1.js ========================
document.write("<scri"+"pt src='2.js'></scr"+"ipt>")
function f1(){
f2()
}
============================== 2.js ========================
function f2(){
alert("from 2.js")
}
打开html,显示对话框“from 2.js”,调用成功。
================================补充===========================
1:1.js调用2.js为什么非在onload中调用?我用onload仅仅是举个例子。
2:onload事件中可以同时调用多个js函数,如果可以,把你的追加在后面,
例如:<BODY onload="javascript:f1()f1()f2()">
3:1.js调用2.js,里面的函数什么被调用,完全要看实际情况,不一定在onload中,不知道你有没有明白我的意思。