如何为XHTML应用程序解码HTML实体?
例如,$("<div/>").html("·").text()
会引发JavaScript错误。
错误是:
[Exception... "An invalid or illegal string was specified" code: "12" nsresult: "0x8053000c (SyntaxError)"
编辑:XHTML意味着真正的XHTML应用程序,application/xhtml+xml
内容类型。
答案 0 :(得分:1)
您可以使用document.createEntityReference
或在JavaScript代码级别(\uxxxx
)转义不适合您的文件编码的字符;但是,正如您的评论所指出的,document.createEntityReference
不适用于Firefox:https://developer.mozilla.org/fr/docs/DOM/document.createEntityReference
或者,您可以使用自定义库,例如php.js的html_entity_decode
:http://phpjs.org/functions/html_entity_decode/
答案 1 :(得分:0)
尝试使用纯JavaScript innerHTML
属性而不是jQuery的html()
方法:
var elem = document.createElement('div');
elem.innerHTML = '·';
var text = $(elem).text();
alert(text);
如果jQuery存在XHTML问题,您可以尝试完全避免它。可以使用textContent
属性代替jQuery.text()
,对于过时的IE版本,可以使用innerText
。
通常,在服务器端解码实体是有意义的。例如,在PHP中,有一个标准函数用于此目的:html_entity_decode()
。