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

Javascript 如何为XHTML应用程序解码HTML实体,javascript,html,xhtml,decode,Javascript,Html,Xhtml,Decode,如何为XHTML应用程序解码HTML实体 例如,$(“”).html(“·;”).text()将引发JavaScript错误 错误是: [异常…”指定了无效或非法的字符串“code:“12”nsresult:“0x8053000c(SyntaxError)” 编辑:XHTML表示真正的XHTML应用程序,具有应用程序/XHTML+xml内容类型。尝试使用纯JavaScript属性而不是jQuery的html()方法: var elem=document.createElement('

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

例如,
$(“”).html(“·;”).text()
将引发JavaScript错误

错误是:

[异常…”指定了无效或非法的字符串“code:“12”nsresult:“0x8053000c(SyntaxError)”

编辑:XHTML表示真正的XHTML应用程序,具有
应用程序/XHTML+xml
内容类型。

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

var elem=document.createElement('div');
elem.innerHTML='·;';
var text=$(elem.text();
警报(文本);
如果jQuery与XHTML有问题,您可以尝试完全避免它。可以使用属性来代替
jQuery.text()
(对于IE的过时版本,可以使用
innerText

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

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

var elem=document.createElement('div');
elem.innerHTML='·;';
var text=$(elem.text();
警报(文本);
如果jQuery与XHTML有问题,您可以尝试完全避免它。可以使用属性来代替
jQuery.text()
(对于IE的过时版本,可以使用
innerText


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

您可以使用
document.createEntityReference
或在JavaScript代码级别转义不适合文件编码的字符(
\uxxx
);但是,正如您在评论中指出的,
document.createEntityReference
在Firefox上不起作用:


或者,您可以使用自定义库,例如php.js的
html\u entity\u decode

您可以使用
document.createEntityReference
或在JavaScript代码级别转义不适合文件编码的字符(
\uxxx
);但是,正如您在评论中指出的,
document.createEntityReference
在Firefox上不起作用:



或者,您可以使用一个自定义库,例如php.js的
html\u entity\u decode

您在XHTML应用程序中尝试过您的示例吗?我在html页面中尝试过(今天使用XHTML[与
application/XHTML+xml
Content Type]一起使用没有意义).BTW,为什么不切换到常规HTML?您在XHTML应用程序中尝试过您的示例吗?我在HTML页面中尝试过(今天使用XHTML[与
application/XHTML+xml
Content Type]一起使用没有意义).BTW,为什么不切换到常规HTML?这会产生JavaScript错误?你能提供一个显示错误的JSFIDLE示例吗?我不能用该代码生成一个。AFAIK,JSFIDLE HTML,而不是XHTML。我使用的是jsBin,带有XHTML doctype,我无法获得错误。请检查内容类型。它是text/htmlI。我现在明白你的意思了。这会产生错误vaScript错误?你能提供一个显示错误的JSFIDLE示例吗?我不能用这个代码生成一个。AFAIK,JSFIDLE HTML,而不是XHTML。我使用的是jsBin,带有XHTML doctype,我无法得到错误。请检查内容类型。它是text/htmlI。我现在明白你的意思了。document.createEntityReference在Fx中也不起作用。看s类似于已弃用。\x26middot;也不起作用。@AlexIvasyuv:JS中的Unicode转义序列与引用名称不起作用;您必须先获取相应的代码点。使用html_entity_decode with可以很好地工作!document.createEntityReference在Fx和Chrome中都不起作用。看起来类似于已弃用。\x26middot;也不起作用。@AJS中的Unicode转义序列不适用于引用名称;您必须首先获得相应的代码点。使用html\u entity\u解码可以很好地工作!