为什么自关闭脚本元素不起作用?

为什么自关闭脚本元素不起作用?

浏览器无法正确识别的原因是什么:

<script src="foobar.js" /> <!-- self-closing script element -->

只有这一点得到承认:

<script src="foobar.js"></script>

这是否打破了XHTML支持的概念?

注意:此声明至少对所有IE(6-8 beta 2)都是正确的。


红颜莎娜
浏览 876回答 4
4回答

繁星coding

XHTML 1规范说:С.3。元素最小化和空元素内容给定其内容模型不是的元素的空实例EMPTY(例如,空标题或段落)不使用最小化形式(例如,使用<p> </p>和不使用<p />)。XHTML DTD将脚本元素指定为:<!--&nbsp;script&nbsp;statements,&nbsp;which&nbsp;may&nbsp;include&nbsp;CDATA&nbsp;sections&nbsp;--><!ELEMENT&nbsp;script&nbsp;(#PCDATA)>

UYOU

为了增加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 />。
打开App,查看更多内容
随时随地看视频慕课网APP