一段用JS程序来生成另一段JS程序:
<script>
tmp = "<script>alert('kkkk')</script>";
alert(tmp)
</script>
我记得以前类拟的确定是可以的,今天是怎么了,只要变量 tmp中出现"</script>",就不能运行了,但IE又不报错

解决方案 »

  1.   

    改成这样就好了
    var tmp = "<script>alert('kkkk')</"+"script>"; 
    alert(tmp) 至于原因……据说是解析器看到连在一起的script当成代码段了
      

  2.   

    2楼兄弟,你这个我也想到了,其实这个问题是从我的另一个实际问题中抽象出来的,这个“</script>"是从数据库中读出来的,原串是这样的“<script src='.................'></script>"
    我原来弄过一个程序是可以能过script来生成另一个程序,而且代码中出现过如:
    <script>
    var str="";
    str += "<script>"
    str += "function test(){"
    str += " alert('kkkk')"
    str += "}"
    str += "test();"
    str += "</script>"
    document.write(str)
    </script>
    (曾经就用过类似这一段的,并且test()执行成功了的)
    这回可被这个搞大了头
      

  3.   

    <script>
    <!--
    ...
    //-->
    </script>
    这样写一举多得