不懂你为什么没有成功,到少我这里测试是通过的 win2k server IE 6.0<span id=aa>asdfghjkl</span><br>
<input type=button value=click onclick=cc()>
<script language=javascript>
function cc()
{
   document.all.aa.attachEvent("onclick",bb);
}
function bb()
{
   alert("ok");
}
</script>

解决方案 »

  1.   

    <body onload="alert()">
    </body>
    <script>
    document.body.onload = "";
    </script>如果没有alert改变就成功。
      

  2.   

    <body onload="alert()">
    </body>
    <script>
    document.body.onload = Function("alert('changed')");
    </script>
      

  3.   

    <body>
    </body>
    <script>function MyFunction(arg1,arg2)
    {
    alert(arg1+":"+arg2);
    }var a="aa";
    var b="bb";
    document.body.attachEvent("onclick",GetTheFunction(a,b));
    a="11";
    b="22";MyFunction(a,b);function GetTheFunction(x,y)
    {
    return Proxy;
    function Proxy()
    {
    return MyFunction(x,y);
    }
    }</script>
      

  4.   

    带参数的可以这么写(IE5下面通过):<span id=aa>asdfghjkl</span><br>
    <input type=button value=click onclick=cc()>
    <script language=javascript>
    function cc()
    {
       document.all.aa.attachEvent("onclick",new Function("alert('ok')"));
    }
    </script>
      

  5.   

    还有一种很好的办法就是你在函数里直接定义某个控件的某个事件.
    <span id=aa>asdfghjkl</span><script language=javascript>
    function document.all.aa.onclick()
    {
       alert("这已经是重新定义过后的函数!");
    }
    </script>
      

  6.   

    <button onclick=bb() id=aa>dsf</button>
    <button onclick="document.all.aa.onclick=cc" id=dd >dsf</button>
    <script>
    function bb(){alert("first");}
    function cc(){alert("changed");}</script>
      

  7.   

    meizz(梅花雨):我这里就是不成功的原因就是,我调用的函数是有参数的,写法跟不带参数的相同是不行的。经过测试,我发现obj.attachEvent("onclick",new Function("funcA(argA,argB)"))的方法在我这里仍然不行。
    不过obj.onclick=Function("funcA(argA,argB)"))的方法通过测试为可用。Lostinet(迷失网络)的方法比较复杂,我还没有进行测试。但是我觉得document.body.attachEvent("onclick",GetTheFunction(a,b));这句有可能不行,因为带参数的我从来没有调试通过。
      

  8.   

    wangxj0600(旁观拍手笑疏狂,疏又何妨,狂又何妨)你可以试一下带有参数的情况,代码会略有不同的。经过测试,我上面提到的第4种方法可以改进为setAttribute("onclick",Function("funcA(argA,argB)"),0)。
    我想主要问题还是在这个Function上面吧,通过转换就可以正常使用了。
      

  9.   

    总结:
    在调用带参数的函数的时候,可以用两种方法
    1.使用obj.onclick=Function("funcA(argA,argB)"))的方法直接修改。2.使用setAttribute方法,obj.setAttribute("onclick",Function("funcA(argA,argB)"),0)。经过测试,attachEvent方法仍然不可用。还有待探讨。
      

  10.   

    UPBTW:为什么你可以给200分,我只能给100分?
      

  11.   

    Lostinet(迷失网络)的方法能通过的