script标签属性用type还是language


Posted in Javascript onJanuary 21, 2015

被人问起一个问题:

<script language = "JavaScript">

<script type="text/javascript">

<script>

这三个标签的使用有什么区别?

虽然一直在用,却也没有好好去弄清楚,这里详细说明一下。

查阅一些资料,主要是浏览器支持问题。type 和 language 属性都可用来指定 <script> 标签中的脚本的类型。language 属性在 HTML 和 XHTML 标准中受到了非议,这两个标准提倡使用 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" 的脚本。

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

各浏览器对于 "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 脚本语言后才有输出值。

<script language="javascript">

function a() {

 b = "a";

}

a();

alert(b);

</script>

关于变量有一个问题,即使你在函数内如同上面那样声明变量,它就会变成全局变量。

如果用 var 声明就会有一个问题。

<script language="javascript">

function a() {

 var b = "a";

 delete b;

 alert(b);

}

a();

</script>

结果依然会弹出a。

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

Javascript 相关文章推荐
js左侧多级菜单动态的解决方案
Feb 01 Javascript
超简单的jquery的AJAX用法
May 10 Javascript
圣诞节Merry Christmas给博客添加浪漫的下雪效果基于jquery实现
Dec 27 Javascript
jquery选择器原理介绍($()使用方法)
Mar 25 Javascript
JavaScript实现图片自动加载的瀑布流效果
Apr 11 Javascript
深入理解JavaScript内置函数
Jun 03 Javascript
Vue服务器渲染Nuxt学习笔记
Jan 31 Javascript
vue实现未登录跳转到登录页面的方法
Jul 17 Javascript
详解如何使用koa实现socket.io官网的例子
Nov 04 Javascript
解决vuex数据异步造成初始化的时候没值报错问题
Nov 13 Javascript
Vue如何实现监听组件原生事件
Jul 03 Javascript
Js跳出两级循环方法代码实例
Sep 22 Javascript
JS交换变量的方法
Jan 21 #Javascript
setinterval()与clearInterval()JS函数的调用方法
Jan 21 #Javascript
js实现DOM走马灯特效的方法
Jan 21 #Javascript
浅谈javascript 迭代方法
Jan 21 #Javascript
js实现用户注册协议倒计时的方法
Jan 21 #Javascript
浅谈javascript 归并方法
Jan 21 #Javascript
JS获取时间的方法
Jan 21 #Javascript
You might like
ThinkPHP实现将SESSION存入MYSQL的方法
2014/07/22 PHP
浅析PHP中的闭包和匿名函数
2017/12/25 PHP
锋利的jQuery 要点归纳(二) jQuery中的DOM操作(下)
2010/03/23 Javascript
JavaScript 获取当前时间戳的代码
2010/08/05 Javascript
javascript判断iphone/android手机横竖屏模式的函数
2011/12/20 Javascript
js选取多个或单个元素的实现代码(用class)
2012/08/22 Javascript
购物车选中得到价格实现示例
2014/01/26 Javascript
jquery统计用户选中的复选框的个数
2014/06/06 Javascript
input:checkbox多选框实现单选效果跟radio一样
2014/06/16 Javascript
JavaScript实现网页加载进度条代码超简单
2015/09/21 Javascript
探究JavaScript中的五种事件处理程序方式
2016/12/07 Javascript
Vue和Bootstrap的整合思路详解
2017/06/30 Javascript
layui 解决富文本框form表单提交为空的问题
2019/10/26 Javascript
五句话帮你轻松搞定js原型链
2020/12/09 Javascript
Python编写生成验证码的脚本的教程
2015/05/04 Python
python自定义解析简单xml格式文件的方法
2015/05/11 Python
Using Django with GAE Python 后台抓取多个网站的页面全文
2016/02/17 Python
Python实现希尔排序算法的原理与用法实例分析
2017/11/23 Python
Pandas中把dataframe转成array的方法
2018/04/13 Python
使用Python和OpenCV检测图像中的物体并将物体裁剪下来
2019/10/30 Python
Python实现定时监测网站运行状态的示例代码
2020/09/30 Python
Champion澳大利亚官网:美国冠军运动服装
2018/05/07 全球购物
澳大利亚运动鞋零售商:The Athlete’s Foot
2018/11/04 全球购物
美国领先的个性化礼品商城:Personalization Mall
2019/07/27 全球购物
俄罗斯在线水暖商店:Perfecto.ru
2019/10/25 全球购物
YII2 全局异常处理深入讲解
2021/03/24 PHP
优秀毕业生求职信范文
2014/01/02 职场文书
毕业典礼演讲稿
2014/05/13 职场文书
环保倡议书50字
2014/05/15 职场文书
消防安全承诺书
2014/05/22 职场文书
租房协议书范文
2014/08/20 职场文书
语文课外活动总结
2014/08/27 职场文书
法定代表人身份证明书
2014/09/10 职场文书
实习护士自荐信
2015/03/25 职场文书
求职导师推荐信范文
2015/03/27 职场文书
单位政审意见范文
2015/06/04 职场文书