经常需要在代码中为特定对象的事件指定JS处理函数,例如
我们为window的LOAD事件指定事件处理函数,标准的方法是
window.onload=onLoadHandler;
但这样有一个问题,假如前面指定了一个Handler,后面又指定了一个handler,就会只有一个Handler被执行,不能像C#中用事件委托那样串接事件处理函数
但是,也不是没有办法,办法是让JS使用字符串串接一个包含所有事件处理句柄的函数,然后,再将其指定给特定事件,多的不说,看下面的例子

<script language="javascript1.2">
function a()
    
{
    alert(
"hello");
    }

    
    
function b()
    
{
    confirm(
"hello");
    }

    
    
var o;
    o
="function hello()\n{";
    o
+="a();"
    o
+="b();"
    o
+="}";
    eval(o);
    window.onload
=hello;
</script>

你可以试一下
看a和b两个函数是不是都被执行了呢?
原因就是JS的eval函数,它可以动态分析并执行JS代码
其结果就是我在其中定义了一个函数hello,hello中依次执行a和b
当eval执行后,hello函数就存在了,并且,可以被正常的调用了