允许 ,但调用时候是要小心。
<script type="text/javascript">
function onclick(){alert(1);}
//这样的定义其实是var onclick=function (){alert(1);}
</script>
<div onclick="alert(this)">123123123</div>
<div onclick="onclick()">fffffff</div>这样就会反复调用自己,造成堆栈益出
<div onclick="window.onclick()">fffffff</div>调用在window空间下定义的方法onclick

解决方案 »

  1.   

    我试过了zowell贴的代码,第2行<div onclick="onclick()">fffffff</div>在在firefox中并没有溢出啊,
    一点反应都没有。
      

  2.   

    firefox的错误显示都在错误控制台中。
    在ff中如果递归调用太多不会溢出而是做了次除限定,将错误作为异常输出在控制台中。
    另外,ff中function onclick(){alert(1);}
    等同于window.onclick=function(){alert(1);}
      

  3.   

    由于浏览器对脚本和Dom的支持不一样,导致对脚本中空间命名的支持也不一样.
    他们都在变,所以文档没有办法将其统一.
    还有一些情况:
    <form id="fm">
    <input type="submit" value="OK" name="submit">
    </form>
    <input type="button" value="click" onclick="sub();">
    <script>
    function sub(){
    var f=document.getElementById("fm");
    f.submit();//失效了,方法名称和成员名称冲突了.
    }
    </script>
    所以javascript程序中,方法和变量等尽量不要和属性名字标签名字一样