如何让JS在使用Ajax接收的HTML响应中执行?
问题描述:
我有以下工作流程如何让JS在使用Ajax接收的HTML响应中执行?
- 格在页面上使用
- 上的用户操作请求完成 来其HTML是 用ajax retrived服务器端页面,并倒入 股利
- 与HTML标记一些JavaScript是 但也是倾倒,而不是 得到执行。
这是为什么?可能的解决办法是什么?
虽然我避免做这样的事情,但在一些旧的代码实现像这些很常见。
答
使用.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"
这将提取的脚本,执行它们与替换他们“”的原始数据。
这看起来不错的方法......谢谢:) – 2010-06-02 06:04:29