一个网站的建设,经常会用到JavaScript,其中必须用到script标签来外调js文件,但是script标签属性用type还是language? type 和 language 属性都可用来指定 <script> 标签中的脚本的类型。所以可以使用下面两种属性:

language = "JavaScript"

或者:
type = "text/javascript"

看了一下w3school,language 属性在 HTML 和 XHTML 标准中受到了非议。

HTML 与 XHTML 之间的差异

在 HTML 4.01 中,script 元素的 "language" 属性不被赞成使用。 在 XHTML 1.0 Strict DTD 中,script 元素的 "language" 属性不被支持。

HTML 4 和 XHTML 在处理脚本中的内容方面有所不同:

在 HTML 4 中,内容类型声明为 CDATA,就是说不会对实体进行解析。 在 XHTML 中,内容类型声明为 (#PCDATA),也就是说会对实体进行解析。 这意味着,在 XHTML 中,应该编码所有特殊的字符,或者把所有内容嵌套在 CDATA 部分中。 为了确保在 XHTML 文档中脚本正确进行解析,请使用如下语法:

<script type="text/javascript"><![CDATA[document.write("Hello World!")
//]]></script>

这两个标准提倡使用 type 属性。遗憾的是,这两个属性的值是不一样的。 其中属性type,值是MIME-type,意思是指示脚本的 MIME 类型,而language值是script,是不赞成使用。规定脚本语言。请使用 type 属性代替它。 您可能偶尔会看见language 的值为 VBScript(对 type 而言是 text/vbscript),表示包含的脚本代码是用 Microsoft 的 Visual Basic Script 编写的。 利用 JavaScript,您还可以使用 language 的值 "JavaScript 1.1",表示包含的脚本语句只能被 Netscape 3.0 或更新的版本处理。Netscape 2.0 只支持 JavaScript 1.0,而无法处理标记为 "JavaScript 1.1" 的脚本。 各浏览器对于 "type" 和 "language" 属性本身均支持,但是对于其中设置的脚本语言类型识别与支持各异:

  • "type" 和 "language" 同时存在时,所有浏览器均优先识别 "type" 属性内的脚本类型;
  • 其中 IE 浏览器实际支持 JScript 和 VBScript 脚本语言标示以及 Script Encoder 加密;
  • Firefox Chrome Safari Opera 对 "type" 属性值的具体识别宽容度不一致,相对 Chrome Safari 对属性值正确性校验更加宽松,Firefox 的校验最为严格;
  • 在 "Language" 属性值识别宽容度比较中,各浏览器中 Chrome Safari 依然最为宽松,IE 最为严格,Firefox 与 Opera 持平;
  • Language Encode 比较中,只有 IE 支持 JScript.Encoder 以及 VBScript.Encoder 类型设置,Firefox Chrome Safari均不支持,Opera 中则是该属性值被修复为默认的 Javascript 脚本语言后才有输出值。

为了保证脚本程序可以正常执行,除非特意使用仅 IE 支持的 VBScript 和 Script Encoder 机制外,应当将 SCRIPT 标记的 "type" 属性设置为 "javascript",并且不要设置已经废弃的 "Languange" 属性。

转载于:https://www.cnblogs.com/asqq/archive/2012/12/27/3194983.html

script标签属性用type还是language?相关推荐

  1. script标签属性sync和defer

    <script src="a.js" defer></script> 加了defer属性script标签的页面,运行流程如下: 1.浏览器开始解析HTML页 ...

  2. [暑假]<script>标签中的type属性详解

    type属性是必须写的属性吗? 不写的情况: <script>标签中的type属性不是必须写的属性, 因为按照惯例,这个值始终都是"text/javascript", ...

  3. script标签之type = module

    在script标签中写js代码,或者使用src引入js文件时,默认不能使用module形式,即不能使用import导入文件,但是我们可以再script标签上加上type=module属性来改变方式. ...

  4. script标签charset属性

    现象: 1.js编码格式为utf-8: 2.script标签也设置了charset="utf-8": 浏览器显示js文件还是乱码??? 原因: 1.js文件使用的是无BOM头的ut ...

  5. 面试小记---外部脚本必须包含 script 标签吗?

    外部脚本必须包含 <script> 标签吗? 答案是否定的. 身为小白的我一开始也是以为这句话的对了,因为本来嘛,引用外部脚本不都用的是<script>标签中的src属性吗.所 ...

  6. script标签中写html,html中script标签的详细介绍

    大家好,欢迎关注支持,谢谢!本篇将介绍html中script标签的详细用法,有兴趣的朋友可以了解一下! 一.前言 在html中,为了实现动态交互效果,我们经常会嵌入其它脚本语言(如:JavaScrip ...

  7. template和script标签

    templte标签 把模板代码放在component的template里,不好排版,看着难受..... 可以把代码用template标签单独拎出来. 步骤 1.注册组件 <template id ...

  8. Script标签6个属性

    Script标签有6个属性 async: 可选.表示应该立即下载脚本,但不应妨碍页面的其他操作,比如下载其他资源或等待加载其他脚本.只对外部脚本有效. charset:可选.表示通过src属性指定代码 ...

  9. script标签的defer属性

    defer 属性规定是否对脚本执行进行延迟,直到页面加载为止. 有的 javascript 脚本 document.write 方法来创建当前的文档内容,其他脚本就不一定是了. 如果您的脚本不会改变文 ...

最新文章

  1. 发现自己的代码写的越来越玄幻了
  2. Windows Phone 修改系统定义的资源颜色
  3. 用jQuery实现弹出窗口/弹出div层
  4. dns是指网络域名系统_域名系统(DNS)是Internet的骨干。 这就是全部的运作方式。...
  5. 大数据之-Hadoop之HDFS_HDFS组成架构---大数据之hadoop工作笔记0050
  6. php设计模式课程---7、装饰器模式如何使用
  7. python 1 面向对象基础知识
  8. 【算法学习】Fast burst images denoising
  9. 【LeetCode】【refine 2】题号:*2. 两数相加
  10. python进阶(一)
  11. Windows游戏加速外挂-变速齿轮 学习笔记-【第一篇】
  12. 用 Python 给微信头像加个圣诞老人(平安果)小图标
  13. GPS测量的精度及用途
  14. 10bit色深灰度图彩色图加载显示
  15. ORACLE对表批处理操作
  16. 茶文化入门 --茶分类
  17. 解决Apple Watch 更新时出现红色感叹号「!」的问题
  18. android拷贝设备断连接,android – Firebase Messaging Inactivity,断开与AppMeasurementService的连接[复制]...
  19. cerr与cout的区别
  20. linux 进程迁移,记一次成功的 linux 系统迁移

热门文章

  1. Weblogic 节点启动
  2. 实现TcpIp简单传送
  3. Storm教程2安装部署
  4. 高可用性、负载均衡的mysql集群解决方案
  5. 中国移动IM-飞信-0802上线新版本 试用手记
  6. JTA的含义及应用简介
  7. 禁止ipc$默认共享的方法
  8. Mapreduce原理和YARN
  9. css 计算属性的应用_如何使用一点CSS Grid魔术设计计算器应用
  10. 播客51:妈妈可以编码的创始人埃里卡·彼得森(Erica Peterson)