<input type="checkbox" name="ck" id="ck" value="fuckme" /><script>var chk=document.getElementById('ck');chk.setAttribute('onClick',"alert('fuck');");</script>
我这么写在 IE8,FF, 都可以, 而 IE7 ,IE6 下面都不行,请问如何解决?

解决方案 »

  1.   

    补充一下:<input type="checkbox" name="ck" id="ck" value="fuckme" />
     <span id="iput"></span>
     
    <script>var iadp=document.getElementById('iput');
    var ipt;for(i=0;i<2;i++)
    {

    ipt=document.createElement('input');
    ipt.setAttribute("type","text");          // by andy 7.14 测试用 text   正常用 hidden
    ipt.setAttribute("name","TopSelect[]");       // TopSelect  是一级枚举值,为数组形式 by andy 7.14
    ipt.setAttribute("value",'fff');
    iadp.appendChild(ipt);

    } var chk=document.getElementById('ck');chk.setAttribute('onClick',"alert('fuck');");
    var ff=document.getElementsByName('TopSelect[]');alert(ff.length);</script>
    代码修改如上,除了上面这个问题,为何这里的ff.length 在 Ie8.0 提示是2,而IE6 和 IE7 都提示是 0 ?
      

  2.   

    低版本ie不支持使用 setAttribute 设置某些属性,比如style、onclick、onmouseover等等。
    建议obj.onclick = function(){alert(11)}。getElementsByName方法在低版本ie中有问题,建议使用getElementsByTagName
      

  3.   

    已经解决了,只能用 obj.onclick=function(){} 但是这样却无法传递参数进这个函数里
      

  4.   

    你把chk.setAttribute('onClick',"alert('fuck');");改成 chk.onclick=function(v){alert(v);}试试看?IE7 里能运行吗?
      

  5.   

    var v = test;
    chk.onclick=function(){alert(v);}这样变量不就过去了吗?如果非要通过function传递的话,就要把执行的函数封装一下
    var tt = function(v){
      alert(v);
    };
    chk.onclick=function(){tt(v);}
      

  6.   

    与浏览器无关!setAttribute只能用于设置静态属性
    添加onclick这样的属性必须使用=function(){代码;}这样的方式
      

  7.   


    谁说跟浏览器无关了?自己去百度一下微软一开始IE7就有这个BUG,IE8才修复了