Javascript 带有application/xhtml+;xml内容类型

Javascript 带有application/xhtml+;xml内容类型,javascript,internet-explorer-9,Javascript,Internet Explorer 9,使用application/xhtml+xml内容类型时,我不能在javascript(、€,等等)中使用任何命名的HTML实体 当我使用text/html内容类型时,它工作得很好。当放入文档本身(而不是使用Javascript)时,有问题的HTML实体也可以正常工作 当我在IE9中点击“F12开发者工具”时,我得到以下错误: SCRIPT5022: DOM Exception: SYNTAX_ERR (12) javascript.js, line 7 character 2 XML

使用application/xhtml+xml内容类型时,我不能在javascript(、€,等等)中使用任何命名的HTML实体

当我使用text/html内容类型时,它工作得很好。当放入文档本身(而不是使用Javascript)时,有问题的HTML实体也可以正常工作

当我在IE9中点击“F12开发者工具”时,我得到以下错误:

SCRIPT5022: DOM Exception: SYNTAX_ERR (12) 
    javascript.js, line 7 character 2
XML5645: The specified entity has not been declared. 
    , line 1 character 42
Firefox给出了一个类似的错误:

[11:19:33.491] undefined entity:1
[11:19:33.493] uncaught exception: [Exception... "An invalid or illegal string was specified"  code: "12" nsresult: "0x8053000c (NS_ERROR_DOM_SYNTAX_ERR)"  location: "http://arp242.net/entity-test/javascript.js Line: 8"]
然后执行停止

我创建了一个测试页面,用于测试/隔离问题:

据我所知,命名HTML实体在XHTML()中完全有效

有人知道如何解决这个问题吗?我可以输入字符(€、-、“、”等)或数字&#。。;值,但我宁愿使用HTML实体。还有相当多的现有(第三方)代码使用HTML实体,我不想转换所有这些


谢谢

XML没有文本命名实体,您可以在doctype中定义它们,也可以用字符代码实体替换文本命名实体(例如is ;等)


(以十进制的unicode代码点为例)

XML没有文本命名实体,您可以在doctype中定义它们,也可以用字符编码实体(例如is ;等)替换文本命名实体


(以十进制的unicode代码点为例)

是的,但在这种情况下,IE似乎破坏或忽略了它,可能忽略了它。由于需要DTD处理解析器(或特例规则)来处理命名实体,因此这里有一个关于不依赖命名实体的警告。我希望web浏览器对XHTML DTD有专门的了解,并能够适当地使用它们中的实体。这大概是因为OP说“当放入文档本身(而不是使用Javascript)时,有问题的HTML实体也可以正常工作。”然而,我不一定希望浏览器读取HTML页面中的自定义DTD,它重新声明了nbsp。看来你毕竟是对的。我把这个放在backburner上有一段时间了,但我上周提交了一份firefox bug报告,根据他们的说法是“应该”是怎样的。。。我不太确定是否诚实,因为XHTML规范(如问题中所链接的)所说的与我所理解的有所不同。。。啊,好吧,这是相关的报告:(我的被标记为这一个的复制品)…是的,但在这种情况下IE似乎破坏或忽略了它可能忽略了它。由于需要DTD处理解析器(或特例规则)来处理命名实体,因此这里有一个关于不依赖命名实体的警告。我希望web浏览器对XHTML DTD有专门的了解,并能够适当地使用它们中的实体。这大概是因为OP说“当放入文档本身(而不是使用Javascript)时,有问题的HTML实体也可以正常工作。”然而,我不一定希望浏览器读取HTML页面中的自定义DTD,它重新声明了nbsp。看来你毕竟是对的。我把这个放在backburner上有一段时间了,但我上周提交了一份firefox bug报告,根据他们的说法是“应该”是怎样的。。。我不太确定是否诚实,因为XHTML规范(如问题中所链接的)所说的与我所理解的有所不同。。。啊,好吧,这是相关的报告:(我的被标记为这一个的复制品)。。。