执行通过 Ajax 响应返回的函数
您的询问围绕调用 Ajax 响应中返回的 JavaScript 函数的能力。澄清一下,您并不是要在 Ajax 回调之后直接调用该函数,而是希望在页面的生命周期内稍后访问它。
答案是肯定的。只要满足某些条件,您就可以在页面存在期间的任何时候执行新获取的代码:
条件:
示例:
<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中文网其他相关文章!