首页  >  文章  >  web前端  >  如何执行通过 Ajax 响应返回的 Javascript 函数?

如何执行通过 Ajax 响应返回的 Javascript 函数?

Susan Sarandon
Susan Sarandon原创
2024-10-22 15:02:02890浏览

How to Execute Javascript Functions Returned Through Ajax Responses?

执行通过 Ajax 响应返回的函数

您的询问围绕调用 Ajax 响应中返回的 JavaScript 函数的能力。澄清一下,您并不是要在 Ajax 回调之后直接调用该函数,而是希望在页面的生命周期内稍后访问它。

答案是肯定的。只要满足某些条件,您就可以在页面存在期间的任何时候执行新获取的代码:

条件:

  • 语法正确性: 返回的 JavaScript 代码必须在语法上有效。
  • 执行要求: 尽管被插入到 DIV 的 <script> 中,但返回的 JavaScript 代码必须在语法上有效。块中,浏览器需要执行声明代码才能识别该函数的存在。这可以通过 eval() 方法来实现。</script>

示例:

<code class="html"><div id="div1">
  <script id="sc1" type="text/javascript">
    function go() { alert("GO!") }
  </script>
</div>

<script type="text/javascript">
  // hypothetical Ajax callback
  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></code>

虽然此示例避免使用 Ajax,但它说明了这一概念。 eval() 方法有效地声明了新函数,使其可在整个页面的生命周期中调用。

注意: 如果 Ajax 调用,建议避免在单独的文件中外部化该函数可能会重复,因为这种方法可能会导致潜在的问题。跨浏览器兼容性也可能是一个考虑因素,在这种情况下,krosenvold 建议的原型方法是一个可行的选择。

以上是如何执行通过 Ajax 响应返回的 Javascript 函数?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn