我有一个 ajax 函数,它以 html 标记的内容作为 json 字符串进行响应,我将对其进行评估以从中创建一个对象。
现在只要 json 字符串里面没有 javascript,它就可以正常工作。但是,当我在字符串中包含一些简单的 javascript 时,当我尝试评估字符串时,我会得到 Uncaught SyntaxError: Unexpectedidentifier
,尽管我转义了每个 '
和 "
.
这是示例:http://jsfiddle.net/dCtA3/2/
当我删除 javascript 时:http://jsfiddle.net/dCtA3/3/它有效。
最佳答案
尝试使用正确的 JSON(如果您的 XHR 返回 JSON,请使用它,解析它,或者检查浏览器是否已经为您解析它(应该是 [response].innerhtml
) )。将 jsfiddle 代码更改为:
var contents = JSON.stringify(
{innerhtml : "<p onclick=\"javascript:alert('hello world');\"> click me! </p>"}
);
function insertContent() {
document.getElementById("container")
.innerHTML = JSON.parse(contents).innerhtml;
}
[根据评论编辑]
请参阅this jsfiddle单击按钮时会模拟 json 请求。单击按钮后将显示字符串化的响应对象。
关于javascript - 在 html 标签内序列化 javascript 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12234661/