在html标记中序列化javascript代码

serialize javascript code inside html tags

本文关键字:序列化 javascript 代码 html      更新时间:2023-09-26

我有一个ajax函数,它以html标记的内容作为响应,作为一个json字符串,我将对其进行求值以生成一个对象。

现在,只要json字符串中没有javascript,它就可以正常工作。但是,当我在字符串中包含一些简单的javascript时,当我尝试评估字符串时,我会得到Uncaught SyntaxError: Unexpected identifier,尽管我会转义每个'"

以下是示例: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;
}​

[根据评论编辑
请参阅这个jsfiddle,其中json请求是在单击按钮时模拟的。单击按钮后会显示字符串化的响应对象。

您需要生成javascript代码吗?它必须在那个字符串中吗?如果javascript可以在您的js文件中,您只需执行以下操作:制作一个函数helloWorld来执行警报,并在json字符串中使用html hance onclick="helloWorld()"。