为什么自闭合脚本元素不起作用?
浏览器无法正确识别的原因是什么:
<script src="foobar.js" /> <!-- self-closing script element -->
只有这样才能被识别:
<script src="foobar.js"></script>
这是否打破了XHTML支持的概念?
注意:此声明至少对所有IE(6-8 beta 2)都是正确的。
浏览器无法正确识别的原因是什么:
<script src="foobar.js" /> <!-- self-closing script element -->
只有这样才能被识别:
<script src="foobar.js"></script>
这是否打破了XHTML支持的概念?
注意:此声明至少对所有IE(6-8 beta 2)都是正确的。
XHTML 1规范的非规范性附录“HTML兼容性指南”说:
给定内容模型不是的元素的空实例(例如,空标题或段落),不要使用最小化形式(例如,使用而不是)。
EMPTY
<p> </p>
<p />
XHTML DTD 将脚本元素指定为:
<!-- script statements, which may include CDATA sections -->
<!ELEMENT script (#PCDATA)>
为了补充Brad和sbandette所说的,自闭合XML语法实际上是正确的XML,但是为了在实践中工作,您的Web服务器还需要将文档作为正确格式的XML发送,并使用XML mimetype,如HTTP Content-Type标头(而不是as)。<script />
application/xhtml+xml
text/html
但是,发送XML mimetype将导致您的页面不被IE7解析,IE7只喜欢。text/html
从 w3 开始:
总之,'application/xhtml+xml'应该用于XHTML系列文档,'text/html'的使用应该仅限于HTML兼容的XHTML 1.0文档。也可以使用“application/xml”和“text/xml”,但在适当的时候,应该使用“application/xhtml+xml”,而不是那些通用的XML媒体类型。
几个月前我对此感到困惑,唯一可行的(与FF3 +和IE7兼容)解决方案是使用旧语法(HTML语法+ HTML mimetype)。<script></script>
text/html
如果你的服务器在其HTTP标头中发送类型,即使使用其他格式正确的XHTML文档,FF3 +也将使用其HTML渲染模式,这意味着这将不起作用(这是一个变化,Firefox以前不那么严格)。text/html
<script />
无论在文档中如何摆弄元元素,XML prolog或doctype,这都会发生 - Firefox一旦获得标题就会分支,这决定了HTML或XML解析器是否查看文档内部,而HTML解析器不理解。http-equiv
text/html
<script />