【问题标题】:How to call a function from code returned from an AJAX request?如何从 AJAX 请求返回的代码中调用函数?
【发布时间】:2013-07-30 06:02:50
【问题描述】:

示例函数:

function myFunction() {
  alert("Test");
}

myFunction();

当在普通的 HTML 网页中调用时,这将运行良好。但如果这是从 AJAX 调用返回的 innerHTML 内容的一部分,则函数调用 myFunction(); 将不起作用。

例如,如果通过 AJAX 更改了 div TestDiv 的内容,并且 innerHTML 包含以下内容:

<span>AJAX Result</span>
<script language="JavaScript">myFunction();</script>

当 AJAX 请求完成时,此代码将不起作用。如何解决这个问题?

【问题讨论】:

  • 如果您不展示如何处理 AJAX 响应,我们将无能为力
  • 使用.innerHTML 插入脚本时,脚本不会运行。您必须明确创建一个脚本节点。如果你使用 jQuery 的 .load() 方法,它会为你解决这个问题。

标签: javascript ajax function


【解决方案1】:

在 ajax 请求的成功方法中调用您的函数。

$.ajax({
   url: 'your url',
   data: { data: data},
   success: function(data) {
      // Your function
      myFunction();
   }
});

顺便说一句,如果您使用的是 html5,则脚本标签上不再需要该类型

<script></script>

不然

<script type="text/javascript"></script>

【讨论】:

  • AJAX 请求也将返回 HTML 输出。是否可以同时返回“innerHTML”内容和参数“data”?
  • innerHTML 将是数据,您只需解析 is 并附加到 div 或对其进行操作。
猜你喜欢
  • 2013-03-28
  • 1970-01-01
  • 1970-01-01
  • 2020-09-13
  • 1970-01-01
  • 2022-01-26
  • 2016-12-02
  • 2012-12-24
  • 1970-01-01
相关资源
最近更新 更多