我有一个向 PHP 脚本发出 AJAX 请求的网页。该 PHP 脚本使用有效的 JSON 对象进行响应,并将Content-type
标头设置为application/json
.
JSON 格式如下(由console.log(JSON.stringify(data))
where data
is JSON response 报告):
{
"content": "<script type=\"text/javascript\">console.log(\"test\");</script>"
}
然后我用“内容”类创建一个 div(记住data
是我的 AJAX responseText JSON 对象):
var content = document.createElement("div");
content.setAttribute("class", "content");
content.innerHTML = data.content;
最后,我将内容 div 附加到我网站上的现有 div 中。
existingDiv.appendChild(content);
我检查了elements
Google Chrome 开发者工具选项卡中的源代码,因为它很好地显示了什么是实际的 DOM 节点,以及什么只是文本。脚本块显示为 DOM 节点。
不幸的是,脚本没有被执行——console.log("test");
没有输出test
到开发者工具控制台。
到目前为止,我看到的唯一选择是使用eval()
我试图避免像瘟疫一样的方法。此外,我的内容可能不仅仅包含一个脚本块。它也可以包含其他 HTML 标记。
我错过了什么?如何让这个动态添加的 Javascript 块执行?
jQuery 解决方案是可以接受的。