首页 新闻 会员 周边

jquery ajax的成功返回后,怎么把返回的javascript用document。witer写到页面

0
悬赏园豆:10 [已解决问题] 解决于 2012-09-14 10:07

jquery ajax的成功返回后,怎么把返回的javascript用document。witer写到页面,或是跟好的办法,如果在success: function()里面写会删除原页面,在重写,请答案

ycty的主页 ycty | 初学一级 | 园豆:112
提问于:2012-09-13 11:41
< >
分享
最佳答案
0

你想写到什么位置?

建议用append方法插入

收获园豆:5
artwl | 专家六级 |园豆:16736 | 2012-09-13 11:42

append不是对html代码有效吗,我是想用document。witer

<script src='http://www.fuke120.com/js/foot.js'></script>这样的javascrip代码,在success: function()里面写会删除原页面,在重写

ycty | 园豆:112 (初学一级) | 2012-09-13 11:44

@ycty: 试试

$('head').append(data);

data为你ajax返回的值

artwl | 园豆:16736 (专家六级) | 2012-09-13 11:52

@artwl:我试过了,虽然用火狐看以添加上去了,但不执行

ycty | 园豆:112 (初学一级) | 2012-09-13 11:54

@ycty: 那个success: function()里面的参数怎么可以再success: function()外面调用

ycty | 园豆:112 (初学一级) | 2012-09-13 11:57

@ycty: 

$.ajax({
  url: 'ajax/test.html',
  success: function(data) {
     test(data);
  }
});

function test(val){
    alert(val);
}

这样就可以啊

不过如果想动态添加JS建议你这样写:

$.ajax({
    url: 'ajax/test.html',
    success: function(data) {//data为js地址
        var script=document.createElement("script");
        script.src=data;
        document.getElementsByTagName("head")[0].appendChild(script);
    }
}

这样就可以了

artwl | 园豆:16736 (专家六级) | 2012-09-13 11:59

@artwl: 

$.ajax({
  url: 'ajax/test.html',
  success: function(data) {
     test(data);
  }
});

function test(val){
    alert(val);
}

这样的话,还是在success里面,外面还是不能调用

我的意思是

var s= null;
        $.ajax({
            url:'RequestServlet',
            type:'GET',
            success: function(data){
            }
        });
        alert(s);

这样alert是空的

ycty | 园豆:112 (初学一级) | 2012-09-13 12:34

@ycty: 这个当然是空的啦,因为是异步的

artwl | 园豆:16736 (专家六级) | 2012-09-13 12:52

@artwl: 那有办法可以吧返回的参数赋值到外面吗

ycty | 园豆:112 (初学一级) | 2012-09-13 12:56

@ycty: 还有你说的这个,

$.ajax({
  url: 'ajax/test.html',
  success: function(data) {
     test(data);
  }
});

function test(val){
    document.write("<script src='http://www.fuke120.com/js/foot.js'><\/script>");
}

就把页面重写了,有没有办法可以解决

ycty | 园豆:112 (初学一级) | 2012-09-13 12:58

@ycty: 你这里的data内容是什么?

如果是js的地址的话用:

function test(val){
    var script=document.createElement("script");
    script.src=val;
    document.getElementsByTagName("head")[0].appendChild(script);
}
artwl | 园豆:16736 (专家六级) | 2012-09-13 13:00

@artwl:是一段javascrip

<script src='http://www.fuke120.com/js/foot.js'><\/script>
这样的话只是加入页面,而页面没有执行这段js
ycty | 园豆:112 (初学一级) | 2012-09-13 13:05

@ycty: 你要想办法取出JS地址,然后用上面的方法才能执行JS,试试下面的代码:

function test(val){
    var url=/src='(.*?)'>/.exec(val)[1];
    var script=document.createElement("script");
    script.src=url;
    document.getElementsByTagName("head")[0].appendChild(script);
}
artwl | 园豆:16736 (专家六级) | 2012-09-13 13:11

@artwl: 可能你没明白我的意思,或许是我,这段js

<script src='http://www.fuke120.com/js/foot.js'><\/script

 

以加载到页面上了,是js加载页面后没有反应

ycty | 园豆:112 (初学一级) | 2012-09-13 13:38
其他回答(3)
1

$(ducument.body).append("<script>alert(1)</script>");

是可以的

收获园豆:2
向往-SONG | 园豆:4853 (老鸟四级) | 2012-09-13 12:16

如果加入像这样的就不行,请解

$(document.body).append("<script src='http://www.fuke120.com/js/foot.js'><\/script>");

支持(0) 反对(0) ycty | 园豆:112 (初学一级) | 2012-09-13 12:28

@ycty: 

嗯,是执行了,但貌似document.write不是输出在当前页面上。

可能需要用后台代码来输出<script src='http://www.fuke120.com/js/foot.js'></script>

支持(0) 反对(0) 向往-SONG | 园豆:4853 (老鸟四级) | 2012-09-13 13:16
0

可以加载到一个HTML标签里,标签.html(返回值)

收获园豆:1
jerry-Tom | 园豆:4077 (老鸟四级) | 2012-09-13 13:36
0
var g = document.createElement('script');
var s = document.getElementsByTagName('head')[0];
g.text = "alert(\"hi\");"
s.parentNode.insertBefore(g, s);

 

原生态支持。哈哈

收获园豆:2
阿K&LiveCai | 园豆:514 (小虾三级) | 2012-09-13 15:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册