如何在ajax响应返回的脚本标记内执行javascript

KJF*_*KJF 19 javascript ajax jquery

我正在发送一个jquery get请求,如下所示:

$.get($(this).attr("href"), $(this).serialize(), null, "script");
Run Code Online (Sandbox Code Playgroud)

我希望收到的响应将包含在脚本标记中.

我知道浏览器不会执行响应,除非它返回没有脚本标记.通常我会从响应中删除标签,但在这种情况下,我无法访问远程计算机上运行的代码,因此无法在源处删除标签.

有没有办法可以从响应客户端剥离脚本标签并执行javascript?

Jos*_*lio 27

您应该能够执行以下操作:

$.get($(this).attr("href"), $(this).serialize(), function(data){
   var script = $(data).text();
   eval(script);
});
Run Code Online (Sandbox Code Playgroud)


小智 6

或者:

var myScript = new Function($('script#myscript',responseText).text());
myScript();
Run Code Online (Sandbox Code Playgroud)