我有以下工作流程
为什么会这样?可能的解决办法是什么?
虽然我避免做这样的事情,但在一些旧的代码实现中,这些很常见。
答案 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"
这将提取脚本,执行它们并用原始数据中的“”替换它们。