请看下面,innerHTML后点击a弹出alert(3)
<div id="a">1</div>
<script>
document.getElementById("a").innerHTML = "123<script>document.getElementById('a').onclick=function(){alert(3)}<\/script>";
</script>

解决方案 »

  1.   


    <div id="a">1</div>
    <script>
    document.getElementById("a").innerHTML = "123<script>document.getElementById('a').onclick=function(){alert(3)}</script>";
    </script>
      

  2.   

    <div id="a">1</div>
    <script>
    document.getElementById("a").innerHTML = "123";
    document.getElementById('a').onclick=function(){alert(3)};
    </script>
      

  3.   


    脚本在innerHTML中被赋值给DIV,不会再被JS解释,运行不了的
      

  4.   

    我运行你的代码,你的div的onClick事件不行啊
      

  5.   


    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> New Document </TITLE>
     </HEAD> <BODY>
      <div id="a">1</div>
    <script>
    document.getElementById("a").innerHTML = "123";
    document.getElementById('a').onclick=function(){alert(3)};
    </script>
     </BODY>
    </HTML>
      

  6.   

    HTML是逐段读代码的,所以把div里的值变成了123,<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> New Document </TITLE>
     </HEAD>
    <script>
    document.getElementById("a").innerHTML = "123";
    document.getElementById('a').onclick=function(){alert(3)};
    </script>
     <BODY>
      <div id="a">1</div> </BODY>
    </HTML>
    如果这样放就错了,因为当读到document.getElementById("a").innerHTML = "123";时,它到不到div所以报错!~
      

  7.   

    3楼正确鉴定完毕!
    其实楼主问的不是很明白,你是为innerHTML赋值脚本内容吗?还是绑定一个onclick时间啊??如果你要付给脚本内容的同时还要让脚本执行,那要使用eval()函数,检测文本是不是code,若是则执行。
    eval("document.getElementById('a').onclick=function(){alert(3)}");
      

  8.   

    <div id="a">1</div>
    <script>
    document.getElementById("a").innerHTML = "123<script defer=true>document.getElementById('a').onclick=function(){alert(3)}<\/script>";
    </script>
      

  9.   

    defer=true  ie only.....