ajax 调用返回时可以向页面添加新的 javascript 函数吗?

Can ajax call on return add new javascript function to the page?

本文关键字:javascript 函数 添加 返回 调用 可以向 ajax      更新时间:2023-09-26

我有一个jQuery ajax调用,它返回一个表的html。现在我需要让用户在表上做一些javascript操作。

返回的 ajax 响应是否可以包含 javascript 代码,或者我是否必须在页面第一次加载时在页面中加载 javascript 代码?

用户可以选择触发"新"javascript。它不必在 ajax 调用时触发。

要回答实际问题,返回响应可以包含脚本。最简单的方法是将其放在 html 之后,因为 ready 事件已经在加载到的页面中触发

您可以使用 jQuery .ajax() 提供的成功(或其他事件)回调来执行此 JS 操作。 像这样:

$.ajax({
   success: function(){
     // Perform JS action
   }
}

jQuery API 列出了可用于 AJAX 调用的所有此类事件回调。查看此内容以获取更多信息。

返回的 ajax 响应可以包含字符串形式的 javascript 代码。 然后你可以评估(响应)。

如果你想请求一个在检索时运行的带有ajax的脚本,那么你可以使用jQuery的getScript()方法来检索它,然后执行它。

根据jQuery文档,getScript()是以下各项的简写:

$.ajax({
  url: url,
  dataType: "script",
  success: success
});

这表明,如果您适当地设置数据类型,jQuery 的 ajax 命令将自动为您处理返回的脚本。

您可以将请求设置为变量,并在设置后对其进行扩展。

// Make the request to the server
var dataID = $("#WhatINeedForAParameter").val();
var request = $.ajax({
  url: "PageOrControllerOrWebApi/MethodName",
  type: "POST",
  data: { id : dataID },
  dataType: "json"
});
// When the request is done process
// what you need done
request.done(function(msg) {
  alert('You got this ' + msg);
});
// If the request failed you can
// see what the problem was and
// handle the situation accordingly
request.fail(function(jqXHR, textStatus) {
  alert( "Your request failed: " + textStatus );
});

您可以使用成功回调来做到这一点,我认为这可能是一种方法,请尝试

$.ajax({
   .....,
   .....,
   success:  
    var script = document.createElement( 'script' );
    script.type = 'text/javascript';
    script.src = url;
    $("#tableID").append( script );
    });

我希望它应该有所帮助。