1

我有一个 HTML 源字段和一个标记文本字段。我根据标记字段的变化编写和提交的 HTML。当我重新打开 html 字段区域时,它只会给出该标记字段的 HTML 源代码。现在的问题是,对于除了一些转义字符之外的所有其他内容,它都提供了正确的 html。但是对于转义字符,它不能正常工作。例如:对于一个空白源字段正在返回<p>&nbsp</p>

但是对于版权©标志,不是返回<p> &copy; </p>,而是返回<p>©</p>

那么 JS 中是否有任何内置函数可以返回字符串中转义字符的 HTML 部分?

我什至试过这个:

function multiLineHtmlEncode(value) {
    var lines = value.split(/\r\n|\r|\n/);
    for (var i = 0; i < lines.length; i++) {
        lines[i] = htmlEncode(lines[i]);
    }
    return lines.join('\r\n');
}

function htmlEncode(value) {
    return jQuery('<div/>').text(value).html(); 
} 

但不工作。

4

2 回答 2

0

不确定我完全理解你在说什么,但试试这个来使用这样htmlEncode定义的函数:

function htmlEncode(value){
  //create a in-memory div, set it's inner text(which jQuery automatically encodes)
  //then grab the encoded contents back out.  The div never exists on the page.
  return $('<div/>').text(value).html();
}

输入字段读取属性时 HTML 编码丢失

于 2013-09-02T07:39:10.320 回答
0

如果我理解正确,请尝试对数据调用 htmlEncode() 两次:

htmlEncode("©")将生成&copy;,浏览器将呈现为©.

htmlEncode(htmlEncode("©"))将返回&amp;copy;浏览器将按字面意思呈现的内容&copy;,为您提供实际的 HTML 源代码,并适当转义以供显示。

于 2013-09-02T08:32:01.510 回答