如何使用Ajax在HTML响应中执行JS执行?

时间:2010-06-01 14:21:12

标签: javascript ajax

我有以下工作流程

  1. 使用页面上的div
  2. 关于用户操作请求已完成 到html的服务器端页面 使用ajax重新启动并转入 div
  3. 使用html标记,一些JavaScript是 然而,这也不是倾销 被执行。
  4. 为什么会这样?可能的解决办法是什么?

    虽然我避免做这样的事情,但在一些旧的代码实现中,这些很常见。

1 个答案:

答案 0 :(得分:2)

使用.innerHTML添加的脚本将不会被执行,因此您必须处理这个问题。

一种简单的方法是提取脚本并执行它们

 var response = "html\<script type=\"text/javascript\">alert(\"foo\");<\/script>html";
 var reScript = /\<script.*?>(.*)<\/script>/mg;
 response = response.replace(reScript, function(m,m1) {
     eval(m1); //will run alert("foo");
     return "";
 });
alert(response); // will alert "htmlhtml"

这将提取脚本,执行它们并用原始数据中的“”替换它们。