4 回答

TA贡献1797条经验 获得超4个赞
XHTML 1规范说:
给定其内容模型不是的元素的空实例
EMPTY
(例如,空标题或段落)不使用最小化形式(例如,使用<p> </p>
和不使用<p />
)。
XHTML DTD将脚本元素指定为:
<!-- script statements, which may include CDATA sections --><!ELEMENT script (#PCDATA)>

TA贡献1878条经验 获得超4个赞
为了增加Brad和squadette所说的,自动关闭的XML语法<script />
实际上是正确的XML,但是为了在实践中工作,您的Web服务器还需要将您的文档作为正确形成的XML与XML模仿类型一起发送,例如application/xhtml+xml
在HTTP中Content-Type头(和不作为text/html
)。
但是,发送XML mimetype将导致您的页面不被IE7解析,IE7只喜欢text/html
。
从w3:
总之,'application / xhtml + xml'应该用于XHTML Family文档,'text / html'的使用应该仅限于HTML兼容的XHTML 1.0文档。也可以使用'application / xml'和'text / xml',但是在适当的时候,应该使用'application / xhtml + xml'而不是那些通用的XML媒体类型。
几个月前我对此感到困惑,唯一可行的(与FF3 +和IE7兼容)解决方案是使用旧<script></script>
语法text/html
(HTML语法+ HTML mimetype)。
如果您的服务器text/html
在其HTTP标头中发送类型,即使使用其他正确形成的XHTML文档,FF3 +也将使用其HTML呈现模式,这意味着<script />
它将无法工作(这是一个更改,Firefox以前不那么严格)。
无论是否在http-equiv
文档中使用元素元素,XML序言或文档类型,都会发生这种情况- 一旦获得text/html
标题,Firefox就会分支,这将决定HTML或XML解析器是否在文档内部查看,而HTML解析器无法理解<script />
。
添加回答
举报