为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

红颜莎娜 2019-05-27 13:14:49
为什么自关闭脚本元素不起作用?浏览器无法正确识别的原因是什么:<script src="foobar.js" /> <!-- self-closing script element -->只有这一点得到承认:<script src="foobar.js"></script>这是否打破了XHTML支持的概念?注意:此声明至少对所有IE(6-8 beta 2)都是正确的。
查看完整描述

4 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

XHTML 1规范说:

С.3。元素最小化和空元素内容

给定其内容模型不是的元素的空实例EMPTY(例如,空标题或段落)不使用最小化形式(例如,使用<p> </p>和不使用<p />)。

XHTML DTD将脚本元素指定为:

<!-- script statements, which may include CDATA sections --><!ELEMENT script (#PCDATA)>


查看完整回答
反对 回复 2019-05-27
?
UYOU

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 />


查看完整回答
反对 回复 2019-05-27
  • 4 回答
  • 0 关注
  • 875 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号