AJAX请求返回一段js代码,页面如何调用这段代码,并给文本框赋值呢?

AJAX请求返回一段js代码,页面如何调用这段代码,并给文本框赋值呢?
AJAX请求返回的JS代码如下:
<script language=javascript>
try{parent.document.all['ID'].value='1';}catch(e){}
try{parent.document.all['jc'].value='王';parent.get_xm('王','王','F');}catch(e){}parent.document.all['dwait'].style.display='none';</script>

     大概的处理思路应该是这样的: 先通过AJAX,从服务器端的某个文件取得这段js代码,然后动态创建一个<script>标签,把取得js代码字串写入到<script>标签里就可以了!

     这边有个小问题,不知道你取得代码为什么要包含<script>标签 ,这样我动态创建<script>标签时,还需要在字串里把<script language=javascript>跟</script>去掉才行。 

     先按照你返回的代码的样式,用js处理一下吧,测试代码如下:

<html>
  <head> 
    <script language="javascript"> 
      function window_load(){
       getAndRunScript("test.js",true,processScriptBeforeRun);
      }
    /*
      加载并执行指定文件中的代码,参数:
    */
    function getAndRunScript(url,async,process,callback){
     var r = createXmlHttpRequest(); 
     //初始化XMLHttpRequest组件
      r.open("get",url,async);   
      //发送请求  
      r.send(null); 
        
      //将取得的js代码添加到画面的script标签里
      appendScript(process ? process(r.responseText) : r.responseText );
      callback && (callback(codes));
    }
    
    //XmlHttpRequest对象  
    function createXmlHttpRequest(){  
        if(window.ActiveXObject){ //如果是IE浏览器  
            return new ActiveXObject("Microsoft.XMLHTTP");  
        }else if(window.XMLHttpRequest){ //非IE浏览器  
            return new XMLHttpRequest();  
        }  
    }  
    //创建一个新的script标签,并将指定的js代码写入到标签内
    function appendScript(codes){ 
      //创建script标签
      var s = document.createElement("<script type='text/javascript'>");
      s.text = codes;
      
      var head = document.getElementsByTagName("head")[0];
      head.appendChild(s); 
    }
    
    //去除script代码字串中的script标签
    function processScriptBeforeRun(script){
     return script.replace(/<[^>]+>/g,""); 
    } 
    </script>
  </head>
  <body onload="window_load();">
     <input type="text" id="text1">
  </body>
</html>


这个是用javascript + XMLHttpRequest来实现的。

    其实如果你返回的代码里不包含<script>标签的话(就像普通的js文件里的内容就行),你可以直接用jQuery的getScript方法就行了:

<html>
  <head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
    <script language="javascript">
      $(document).ready(function(){
      // 用jQuery的getScript方法,则js代码字串不能带有<script>标签,否则无法执行
        $.getScript("./test.js"); 
      });   
    </script>
  </head>
  <body >
   <input type="text" id="text1">
  </body>
</html>


最后把我测试用的代码放到附件里..  你自己测测看,看是不是你想要的那种方式吧!

追问

正在测试中

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-13
在你想要插入值的地方,用以下三种方式:
document.getElementById("要显示内容的文本框ID").value="返回的内容";
document.getElementsByName("要显示内容的文本框name")[0].value="返回的内容";
document.getElementById("要显示内容的文本框ID").innerHTML="返回的内容";(用于将整段内容放进去)
第2个回答  2013-07-13
使用document.getElementById("文本框的ID").value="你想要显示的信息"追问

取值用<input id=XX ....就可以取到。
现在的问题是,我用AJAX发送请求后返回了上面的一段JS代码,如何把他插入到网页中呢?