我有一个返回表格 html 的 jQuery ajax 调用。现在我需要让用户在桌子上做一些 javascript 操作。
返回的 ajax 响应是否可以包含 javascript 代码,还是我必须在第一次加载页面时在页面中加载 javascript 代码?
用户可以选择触发“新”javascript。它不必在 ajax 调用时触发。
我有一个返回表格 html 的 jQuery ajax 调用。现在我需要让用户在桌子上做一些 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 );
});
我希望它会有所帮助。