使用application / xhtml + xml Content-Type时,我不能在我的javascript(,€等)中使用任何命名的HTML实体。
当我使用text / html Content-Type时它工作正常。放入文档本身时,违规的HTML实体也可以正常工作(而不是使用Javascript)。
当我在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"]
然后执行停止。
我创建了一个测试页面,用于测试/隔离问题所在的位置:http://arp242.net/entity-test/
据我所知,命名的HTML实体在XHTML中完全有效(http://www.w3.org/TR/2002/REC-xhtml1-20020801/#h-A2)
有没有人知道如何解决问题?我可以输入字符(€, - ,“,”等)或数字&#..;值和有效,但我宁愿使用HTML实体。还有相当多的现有(第三方)代码使用HTML实体,我宁愿不转换所有这些。
谢谢!
答案 0 :(得分:1)
XML没有文本命名实体,您可以在doctype中定义它们或用char代码替换文本命名实体(例如& nbsp; is 等等)
http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references (以十进制为单位的unicode代码点)