日期:2014-05-16  浏览次数:20356 次

JS onclick函数在FireFox中可以,在IE中不行,请教!
大家好!有个问题请教大家!
代码如下!

JScript code

<html>
<body>
    <script type="text/javascript">
        var ColSave = new Array();
        function StartPainTable()
        {
            /**********************显示TOKEN中的内容**********************************/
          document.write('<TokTagControl id=tokControl>');
        document.write('<a href="#self">');
          document.write('[+]');
          document.write('</a>');
          document.write('</TokTagControl>');
            //绘制ResultTable完毕
            /**********************显示Report中的内容**********************************/
      }
        window.onload = function() 
        { 
            StartPainTable();
        //    var TokenTag = document.getElementById("tokControl");  
            var TokenTag = document.getElementsByTagName("TokTagControl");  
            var len = TokenTag.length;
            for(var i=0;i<len;i++)
            {
                
                TokenTag[i].i = i;
                TokenTag[i].onclick = function() 
                {
                    document.write("Token Click Enter");
                            document.write(this.i);
                            document.write('<br/>');;
                }
          }
        }
    </script>
</body>
</html>            



就是这段代码在火狐与谷歌浏览器中,运行没有问题,点击 [+] 会有响应,但是在IE中却不可以,请问为什么呢?谢谢大家了

------解决方案--------------------
不要使用document.write()方法输出html代码,在触发window.onload事件时,文档流已经关闭了,此时再调用write()方法就会创建新的文档流。你在IE下浏览器后查看源代码就知道原因了。

用DOM方法更新文档结构吧。