responseText 你可以只是返回 显示显示 
再用$("show").innerHTML= ajax.responseText 如果返回的是js..ajax也会把他当成是普通文本的..

解决方案 »

  1.   

    document.write应该不可能再执行了
      

  2.   

    2楼说的重点,页面如果加载完后,再把ajax获取的内容写到$("show").innerHTML里面,会把整个文档重写。用正则在responseText中截取文字然后像1楼的赋值给$("show").innerHTML
      

  3.   

    可以使用 eval 来执行返回的js代码
    re = /<script.+?>(.+)<\/script>/i;
    if(re.test(ajax.responseText)) {
      eval(ajax.responseText.replace(re, "$1"));
    }不过你的示例有问题
    1.按你的示例是需返'回显示显示',并执行$("show").innerHTML= ajax.responseText 
    2.形如<div id="show"> <script language='javascript'>document.wirte('显示显示') </script> </div>的语句只能在也面加载过程中使用
    一旦页面加载完毕,当前页的document将被关闭,其后的document.write将作用于新页
      

  4.   

    真的想执行返回的script的话 返回页面的改成 <script language='javascript' defer> 但是ie only
      

  5.   

    确实如xuzuning 所说,一旦页面加载完毕,当前页的document将被关闭,其后的document.write将作用于新页 
    即使可以通过eval来执行返回来的js,但前面的哦document被覆盖,只显示后来的eavl(js),这个问题需要变通,感谢