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 );
});
我希望它应该有所帮助。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 正在全局范围中查找JavaScript函数
- 如何将输入(type=text)从html表单传递到javascript函数
- 如何调用这个匿名 JavaScript 函数
- 通过Ajax将JavaScript函数传递给PHP文件
- 在javascript函数中设置全局变量
- 如何在执行此特定onclick事件时执行JavaScript函数
- 使用javascript函数在页面初始化后加载jquery
- javascript函数同步
- 如何将一个JavaScript函数回调为多个函数
- 在javascript函数中使用php变量
- 代码背后调用一个JavaScript函数的按钮点击-C#
- 将JavaScript函数与HTML分离
- 组合两个javascript函数
- 在 Java 中的 JavaScript 函数中插入 Wicket 值
- javascript函数内部的代码用逗号而不是分号分隔
- href属性内的javascript函数
- 使用html表单中的参数调用JavaScript函数
- 分析Javascript函数中的多个对象
- javascript函数的:和=之间的区别