我有一个ajax函数,它响应一个html标记的内容,作为一个json字符串,我将评估它是否有一个对象。
现在只要json字符串里面没有javascript,它就可以了。但是当我在字符串中包含一些简单的javascript时,当我尝试评估字符串时,我会得到Uncaught SyntaxError: Unexpected identifier
,尽管我会逃避每个'
和"
。
以下是示例:http://jsfiddle.net/dCtA3/2/
当我删除javascript:http://jsfiddle.net/dCtA3/3/时,它可以正常工作。
答案 0 :(得分:2)
尝试使用正确的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请求。单击按钮后会显示字符串化的响应对象。
答案 1 :(得分:0)
您是否需要生成javascript代码并且必须在该字符串中?如果javascript可以在你的js文件中,你可以简单地这样做: 创建一个执行警报的函数helloWorld,并在你的json字符串中使用html onclick =“helloworld()”。