1

我从 ASP.NET Web 服务接收 JSON 数据,该服务已使用 Microsoft 的 AntiXSS 库 ( Encoder.HtmlEncode()) 进行了 HtmlEncoded,然后通过 jQuery Ajax 调用以 JSON 形式返回。

我正在使用这些数据填充编辑表单输入,如下所示:$('descriptionTextBox').val(object.Description);

其他时候,我可能只是将它作为 Html 附加到按预期显示数据的页面:$('descriptionSpan').html(object.Description);

显然,如果字符串最初包含 Html 或编码的字符,这会导致表单输入显示编码数据。要解码数据以在输入中显示,我使用以下内容:

function decodeHtml(encodedStr) {
    return $("<div/>").html(encodedStr).text();
}

像这样$('descriptionTextBox').val(decodeHtml(object.Description));

这是应该使用 JavaScript 在表单/输入上设置编码数据的正确方法吗?

4

1 回答 1

1

是的,我认为这很好。有关解码包含 html 实体的字符串的另一种方法,请查看以下答案:https ://stackoverflow.com/a/9609450/240324 。

我个人更喜欢这种方法,因为它不会创建一个 html 元素来解码字符串,但是你的方法没有问题。

于 2013-04-02T20:19:42.203 回答