如何解码XHTML应用程序的HTML实体

时间:2012-11-09 15:29:49

标签: javascript html xhtml decode

如何为XHTML应用程序解码HTML实体?

例如,$("<div/>").html("&middot;").text()会引发JavaScript错误。

错误是:

  

[Exception... "An invalid or illegal string was specified" code: "12" nsresult: "0x8053000c (SyntaxError)"

编辑:XHTML意味着真正的XHTML应用程序,application/xhtml+xml内容类型。

2 个答案:

答案 0 :(得分:1)

您可以使用document.createEntityReference或在JavaScript代码级别(\uxxxx)转义不适合您的文件编码的字符;但是,正如您的评论所指出的,document.createEntityReference不适用于Firefox:https://developer.mozilla.org/fr/docs/DOM/document.createEntityReference

或者,您可以使用自定义库,例如php.js的html_entity_decodehttp://phpjs.org/functions/html_entity_decode/

答案 1 :(得分:0)

尝试使用纯JavaScript innerHTML属性而不是jQuery的html()方法:

var elem = document.createElement('div');
elem.innerHTML = '&middot;';

var text = $(elem).text();

alert(text);

如果jQuery存在XHTML问题,您可以尝试完全避免它。可以使用textContent属性代替jQuery.text(),对于过时的IE版本,可以使用innerText

通常,在服务器端解码实体是有意义的。例如,在PHP中,有一个标准函数用于此目的:html_entity_decode()