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

当服务器设置了哑剧类型时,为什么还要写<script type =

当服务器设置了哑剧类型时,为什么还要写<script type =

陪伴而非守候 2019-11-28 10:50:07
我的理解是,MIME类型是由Web服务器设置的。为什么要添加type="text/javascriptor type="text/css"属性?这不是一个无用且被忽略的属性吗?
查看完整描述

3 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

道格拉斯·克罗克福德说:


type="text/javascript"


此属性是可选的。从Netscape 2开始,所有浏览器中的默认编程语言都是JavaScript。在XHTML中,此属性是必需的,也是不必要的。在HTML中,最好将其省略。浏览器知道该怎么做。


他还说:


W3C没有采用该language 属性,而是偏向type 采用MIME类型的属性。不幸的是,MIME类型不规范,所以有时候 "text/javascript"还是 "application/ecmascript"或别的东西。幸运的是,所有浏览器将始终选择JavaScript作为默认编程语言,因此,最好始终简单地编写<script>。它是最小的,并且可以在大多数浏览器上使用。


仅出于娱乐目的,我尝试了以下五个脚本


  <script type="application/ecmascript">alert("1");</script>

  <script type="text/javascript">alert("2");</script>

  <script type="baloney">alert("3");</script>

  <script type="">alert("4");</script>

  <script >alert("5");</script>

在Chrome浏览器上,脚本3(type="baloney")以外的所有代码均有效。IE8没有运行脚本1(type="application/ecmascript")或脚本3。根据我对两个浏览器的非广泛示例,您似乎可以放心地忽略该type属性,但是使用它时,最好使用一个合法的值(与浏览器相关)。


查看完整回答
反对 回复 2019-11-28
?
慕婉清6462132

TA贡献1804条经验 获得超2个赞

因为至少在HTML 4.01和XHTML 1(.1)中,元素的type属性<script>是必需的。


在HTML 5中,type不再需要。


实际上,尽管您应该text/javascript在HTML源代码中使用,但许多服务器都会使用发送文件Content-type: application/javascript。在RFC 4329中阅读有关这些MIME类型的更多信息。


请注意RFC 4329之间的区别,RFC 4329被标记text/javascript为过时并建议使用application/javascript,并且现实中某些浏览器对<script>包含元素的元素type="application/javascript"(在HTML源代码中,不是要发送的文件的HTTP Content-type标头)表现出狂热。最近,在WHATWG邮件列表中有关于此差异的讨论(HTML 5的type默认值为text/javascript),请阅读以下主题为主题的消息,您会考虑使用RFC 4329吗?


查看完整回答
反对 回复 2019-11-28
  • 3 回答
  • 0 关注
  • 488 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信