我想以这种形式正确解释您的问题:“好的,我已经用完所有的Ajax东西了;我只想知道从那时起任何时候都可以调用插入到DIV中的JavaScript函数吗?
,也就是说,我不想在上下文中将其称为“回调返回”。
好的,如果您的意思是这样,那么您可以在以下情况下,在浏览器内的页面持久性期间的任何时候调用新代码:
1)您的Ajax回调返回的JavaScript代码在语法上必须可以;
2)即使将函数声明插入到<script>
现有<div>
元素中的块中,浏览器也不知道新函数的存在,因为声明代码从未执行过。因此,您必须eval()
由Ajax回调返回的声明代码,才能有效地声明新函数并使它在整个页面生命周期中都可用。
即使很虚构,此代码也说明了这个想法:
<html>
<body>
<div id="div1">
</div>
<div id="div2">
<input type="button" value="Go!" onclick="go()" />
</div>
<script type="text/javascript">
var newsc = '<script id="sc1" type="text/javascript">function go() { alert("GO!") }<\/script>';
var e = document.getElementById('div1');
e.innerHTML = newsc;
eval(document.getElementById('sc1').innerHTML);
</script>
</body>
</html>
我没有使用Ajax,但是概念是相同的(即使我选择确定的示例不是很聪明:-)
一般而言,我不质疑您的解决方案设计,即在单独的.js文件等中对函数进行外部化+泛化是否适当,但请注意,这样的解决方案可能会引起其他问题,尤其是在您的Ajax调用应重复执行,即,如果同一函数的上下文发生更改,或者如果要考虑已声明的函数持久性,那么也许您应该认真考虑将设计更改为该线程中建议的示例之一。
最后,如果我误解了您的问题,并且您谈论的是当您的Ajax回调返回时该函数的上下文调用,那么我的感觉是建议使用krosenvold描述的Prototype方法,因为它是跨浏览器,经过测试且功能齐全的,这可以为您提供更好的未来实施路线图。
问题内容: 一旦Ajax通过PHP返回了HTML代码,我就试图加载一个javascript函数。这需要我在ajax响应中回显javascript。 换句话说,我试图在PHP Ajax响应中添加此代码(放置在脚本标签之间)。.希望它执行 从到目前为止的内容来看,浏览器已经完成了Javascript的读取,因此不会执行。有没有办法做到这一点.... ? 问题答案: 您必须像这样评估该代码 要么 如果您
问题内容: 这个问题已经在这里有了答案 : 如何从异步调用返回响应? (39个答案) 7年前关闭。 我想创建一个JavaScript函数,该函数返回jQuery AJAX调用的值。我想要这样的东西。 我知道我可以通过将async设置为false来做到这一点,但我宁愿不这样做。 问题答案: 使用jQuery 1.5,您可以使用全新的功能,正是为此目的而设计的。 资源
问题内容: 我有一个发出Ajax请求的函数。我如何从中返回响应? 我尝试从回调中返回值,以及将响应分配给函数内部的局部变量并返回该局部变量,但这些方法均未真正返回响应。 问题答案: 问题 在一中的Ajax代表异步。这意味着发送请求(或更确切地说接收响应)已从正常执行流程中删除。在你的示例中,立即返回并且在调用;作为回调传递的函数之前执行下一条语句。 这是一个类比,希望可以使同步流和异步流之间的区别
问题内容: 谁能告诉我如何将值作为函数的返回值返回。 当您点击注册表格中的提交时,上述功能就会触发(很明显)。问题是,无论响应是什么,此表单都将提交,并且警告框有时不显示任何内容(空白),有时根本不显示。但是,如果我将结尾更改为手动[即用] 替换,则正确的值将显示在警报框中。 PS我比JavaScript的菜鸟还差,因此也欢迎提出一般性改进代码的建议。 问题答案: 问题是,直到……等待……状态改变
问题内容: 当我警告jsonServerResponse函数返回的值时,尽管从process.php页面返回了JSON,但其值未定义。 我知道问题是异步请求完成之前发出的警报功能,但是我不确定如何解决此问题。任何建议都非常感激:) 问题答案: 好的,我是从其他帖子中弄清楚的。结果可以在成功回调中处理,也可以添加本身是回调函数的参数并将ajax请求的结果应用于回调。 还有gdoron,您所询问的那一
问题内容: 我正在使用jQuery的网页上工作。我有一个Ajax调用,它从服务器获取数据并更新div。在该数据内部有一个jQuery函数,但是在将数据加载到页面中之后未调用该函数。我已经在页面中包含了正确的js文件。 这是从Ajax调用返回并放入div的内容: 将html插入页面后,如何使返回的javascript运行? (我将Rails与jRails插件结合使用) 问题答案: 如果要对具有htm