aa.js:function test(){
  var aa= "<script>alert(11);</script>";          
  var insertInto = document.getElementById('input');
  var insertDiv = document.createElement('div');
  insertDiv.innerHTML= aa;     
  insertInto.appendChild(insertDiv);
}<script src="aa.js"></script>
<span id = "input">aaaaa</span>
<input type = "button" value = "test" onclick = "test();"/>
需求就是将含有一个函数的aa拼接到页面
ff下可以alert出来,ie7下不行,为什么?怎么解决?

解决方案 »

  1.   

    不知为什么,一起等大牛回答不过这样可以解决。
    <html>
    <head>    <script language="javascript">
            function test() {
                var aa = "alert(11);";
                var insertInto = document.getElementById('input');
                var insertDiv = document.createElement('div');
                insertDiv.innerHTML = eval(aa);
                insertInto.appendChild(insertDiv);
            } 
        </script></head>
    <body>
        <span id="input">aaaaa</span>
        <input type="button" value="test" onclick="test();" />
    </body>
    </html>
      

  2.   

    另: 
    var aa= "<script>alert(11);</script>"; 
    是不是应该写成 
    var aa= "<script>alert(11);<\/script>"; 
      

  3.   


    var aa= "<script>alert(11);</"+"script>";  //script标签中不允许出现script标签,所以需要用字符串连接
      

  4.   

    L@_@K
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
     <head>
      <title>Test Page</title>
      <meta name="generator" content="editplus" />
      <meta name="author" content="" />
      <meta name="keywords" content="" />
      <meta name="description" content="" />
      <style type="text/css">  </style>
    <script type="text/javascript">
    <!--
    function test(){
      var aa= "alert(11);";
      var script = document.createElement('script');
      script.text = aa;
      document.body.appendChild(script);
    }
    //-->
    </script>
     </head> <body> </body>
     <script type="text/javascript">
     <!--
    test();
     //-->
     </script>
    </html>
      

  5.   

    没用的,ie不执行innerHTML中的js,innerHTML不是w3c标准,有差异是正常的。
      

  6.   

    <body>
    <span id="input">aaaaa</span>
    <input type="button" value="test" onclick="tesxt()"/>
    <script>
    function tesxt() {
    var aa = "<span style='display:none'>Bug</span><script defer>alert(11);</sc" + "ript>";
    var insertInto = document.getElementById('input');
    var insertDiv = document.createElement('div');
    insertDiv.innerHTML = aa;
    insertInto.appendChild(insertDiv);
    }
    </script>
      

  7.   

    在字符串中拼接标记的做法非常不可取,
    结构与内容相混合,代码不易维护,而且非常容易出错!
    Web 开发常用手册JScript语言参考.rar
    http://download.csdn.net/source/308916DHTML参考手册.rar
    http://download.csdn.net/source/308913样式表中文手册.chm
    http://download.csdn.net/source/304124
      

  8.   

    function test(){
      var insertInto = document.getElementById('input');
      var insertDiv = document.createElement('div');
      var s = document.createElement("script");
      s.text="alert(11);";
      insertDiv.appendChild(s);              
      insertInto.appendChild(insertDiv);
      alert(insertInto.innerHTML)
    }
      

  9.   

    6楼的方法 
    在insertInto.appendChild(insertDiv); 这句之前alert
    4楼的方法
    在 document.body.appendChild(script); apend之后alert
    问题基本解决了,谢谢各位