a.html 
------------------------ 
<script defer>alert("ok"); </script> 
b.html 
------------------------ 
.... 
xmlhttp.open("get","a.html",false); 
... 
oDiv.innerHTML = xmlhttp.responseText //也就是a.html的 <script defer>alert("ok"); </script> 
运行b.html,在IE中脚本运行了,FF等没效果。 加defer能在IE中运行,可这FF之类的浏览器没有defer属性,怎么兼容它哦? 

解决方案 »

  1.   

    使用document.createElement("script")动态加载js文件或者
    eval("alert('i am a 动态执行的')")
      

  2.   


    oDiv.innerHTML = xmlhttp.responseText;
    var str = xmlHttp.responseText;
    var patt = /<script[^>].*?>([\s\S]*?)<\/script>/ig;
    var result;
    while ((result = patt.exec(str)) != null)  
    {
         eval(RegExp.$1);
    }不行么
      

  3.   

    或者
    var scriptEl=document.createElement("script");
    scriptEl.setAttribute("type","text/javascript");
    scriptEl.text=" alert('Hello from inserted script.')";
    document.body.appendChild(scriptEl);
      

  4.   

    和http://topic.csdn.net/u/20100318/09/502ef251-c923-45c0-83f6-70887e34fc6e.html?seed=49244382&r=64004290#r_64004290这个是一样的,到底要怎么解决呀,急死人了
      

  5.   

     可以用window.execScript(js.innerHTML, js.language); 
      

  6.   

    你只返回<script>里的代码,然后在页面新建一个<script>,把代码插进去
      

  7.   

    http://www.pjhome.net/article.asp?id=585
    看这里
      

  8.   

    勉强能解决,不过没有<script>标签:
    <div id="div1"></div> <script type="text/javascript">
    document.getElementById("div1").innerHTML='alert("aaaaaaa")';
    eval(document.getElementById("div1").innerHTML);
    </script>
      

  9.   

    你看下jQuery 的 html() 这个函数吧,,很复杂的,,,jQeury 里边先是把代码用正则取出来,再创建一个script 的标签,,然后根据浏览器不同 选用 appendChild(createTextNode()) 或 scriptobj.text= 的方式来处理的,,,直接用 jQuery 的html()函数算了.....