调用从 Ajax 响应返回的 JavaScript 函数 [英] Calling a JavaScript function returned from an Ajax response
本文介绍了调用从 Ajax 响应返回的 JavaScript 函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个发送 Ajax 命令的系统,该命令返回一个包含函数的脚本块.将此数据正确插入 DIV 后,我希望能够调用此函数来执行所需的操作.
这可能吗?
解决方案
我认为在这种形式下正确解释您的问题:好吧,我已经完成了所有的 Ajax 内容;我只是想知道 JavaScript从那一刻起,我插入到 DIV 中的 Ajax 回调函数可以随时调用,也就是说,我不想在上下文中调用它到回调返回".
好的,如果您的意思是这样,那么答案是肯定的,您可以在浏览器中页面持久化期间的任何时刻调用您的新代码,条件如下:
1) 你的 Ajax 回调返回的 JavaScript 代码必须在语法上没问题;
2) 即使您的函数声明被插入到现有
元素内的
块中,浏览器也不会知道新函数的存在,因为声明代码从未被执行过.因此,您必须eval()
Ajax 回调返回的声明代码,以便有效地声明您的新函数并使其在整个页面生命周期内可用.即使很傻,这段代码也解释了这个想法:
<身体><div id="div1">
<div id="div2"><input type="button" value="Go!"onclick="go()"/>
<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);