繁体   English   中英

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

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

我有一个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 );
    });

我希望它会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM