<html> <head> <title>Test</title> <script type="text/javascript"> var a = -1; var b = -1; function A(){ document.getElementById("MyButton1").onclick = function B(){ alert("a = " + a +" ; " + "b = " + b); } } function C(new_a,new_b){ a = new_a; b = new_b; //触发MyButtonn1的单击事件 document.getElementById("MyButton1").click(); } </script> </head> <body onload = "A();"> <INPUT type="button" id="MyButton1" style = "display:none" value="button1"> <INPUT type="button" id="MyButton2" onclick = "C(2,3);" value="button2"> </body> </html>
把MyButton1设为隐藏,通过点击MyButton2可以直接调用函数A中的函数B。其中的MyButton1的单击事件充当了类似“桥梁”做作用,这样的好处是在执行函数B时保持了原有的上下文环境,当函数A中有很多函数和变量时会比较好用。