jquery ajax的成功返回后,怎么把返回的javascript用document。witer写到页面,或是跟好的办法,如果在success: function()里面写会删除原页面,在重写,请答案
你想写到什么位置?
建议用append方法插入
append不是对html代码有效吗,我是想用document。witer写
<script src='http://www.fuke120.com/js/foot.js'></script>这样的javascrip代码,在success: function()里面写会删除原页面,在重写
@ycty: 试试
$('head').append(data);
data为你ajax返回的值
@artwl:我试过了,虽然用火狐看以添加上去了,但不执行
@ycty: 那个success: function()里面的参数怎么可以再success: function()外面调用
@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:
$.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: 这个当然是空的啦,因为是异步的
@artwl: 那有办法可以吧返回的参数赋值到外面吗
@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: 你这里的data内容是什么?
如果是js的地址的话用:
function test(val){ var script=document.createElement("script"); script.src=val; document.getElementsByTagName("head")[0].appendChild(script); }
@artwl:是一段javascrip
<script src='http://www.fuke120.com/js/foot.js'><\/script>
这样的话只是加入页面,而页面没有执行这段js
@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: 可能你没明白我的意思,或许是我,这段js
<script src='http://www.fuke120.com/js/foot.js'><\/script
以加载到页面上了,是js加载页面后没有反应
$(ducument.body).append("<script>alert(1)</script>");
是可以的
如果加入像这样的就不行,请解
$(document.body).append("<script src='http://www.fuke120.com/js/foot.js'><\/script>");
@ycty:
嗯,是执行了,但貌似document.write不是输出在当前页面上。
可能需要用后台代码来输出<script src='http://www.fuke120.com/js/foot.js'></script>
可以加载到一个HTML标签里,标签.html(返回值)
var g = document.createElement('script'); var s = document.getElementsByTagName('head')[0]; g.text = "alert(\"hi\");" s.parentNode.insertBefore(g, s);
原生态支持。哈哈