1

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

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

错误是:

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

编辑:XHTML 表示真正的 XHTML 应用程序,具有application/xhtml+xmlContent-type。

4

2 回答 2

1

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

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

于 2012-11-09T15:42:37.143 回答
0

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

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

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

alert(text);

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

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

于 2012-11-09T15:33:24.030 回答