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 相关文章推荐
sogou地图API用法实例教程
Sep 11 Javascript
JavaScript中解析JSON数据的三种方法
Jul 03 Javascript
Knockout自定义绑定创建方法
Dec 26 Javascript
JavaScript判断数组重复内容的两种方法(推荐)
Jun 06 Javascript
ionic实现滑动的三种方式
Aug 27 Javascript
聊一聊JS中的prototype
Sep 29 Javascript
jquery操作ID带有变量的节点实例
Dec 07 Javascript
codeMirror插件使用讲解
Jan 16 Javascript
Bootstrap BootstrapDialog使用详解
Feb 17 Javascript
走进javascript——不起眼的基础,值和分号
Feb 24 Javascript
快速将Vue项目升级到webpack3的方法步骤
Sep 14 Javascript
微信小程序中为什么使用var that=this
Aug 27 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四种url访问方式详解
2014/11/28 PHP
php将图片保存入mysql数据库失败的解决方法
2014/12/27 PHP
PHP字典树(Trie树)定义与实现方法示例
2017/10/09 PHP
PHP实现的分解质因数操作示例
2018/08/01 PHP
PHP实现单条sql执行多个数据的insert语句方法
2019/10/11 PHP
jQuery EasyUI API 中文文档 可调整尺寸
2011/09/29 Javascript
深入理解JavaScript系列(7) S.O.L.I.D五大原则之开闭原则OCP
2012/01/15 Javascript
JavaScript实现的日期控件具体代码
2013/11/18 Javascript
一行命令搞定node.js 版本升级
2014/07/20 Javascript
jQuery对指定元素中指定字符串进行替换的方法
2015/03/17 Javascript
Angular.js与Bootstrap相结合实现表格分页代码
2016/04/12 Javascript
JavaScript中匿名函数的递归调用
2017/01/22 Javascript
js基于myFocus实现轮播图效果
2017/02/14 Javascript
Vue.js实现在下拉列表区域外点击即可关闭下拉列表的功能(自定义下拉列表)
2017/05/30 Javascript
seajs下require书写约定实例分析
2018/05/16 Javascript
使用vuex解决刷新页面state数据消失的问题记录
2019/05/08 Javascript
JavaScript基础之this和箭头函数详析
2019/09/05 Javascript
如何实现小程序与小程序之间的跳转
2020/11/04 Javascript
使用js获取身份证年龄的示例代码
2020/12/11 Javascript
Python编程语言的35个与众不同之处(语言特征和使用技巧)
2014/07/07 Python
python把数组中的数字每行打印3个并保存在文档中的方法
2018/07/17 Python
Python3实现zip分卷压缩过程解析
2019/10/09 Python
python小白学习包管理器pip安装
2020/06/09 Python
英国剑桥包官网:The Cambridge Satchel Company
2016/08/01 全球购物
时尚圣经:The Fashion Bible
2019/03/03 全球购物
DERMAdoctor官网:美国著名皮肤护理品牌
2019/07/06 全球购物
德国2018年度最佳在线药房:Bodfeld Apotheke
2019/11/04 全球购物
英国鞋网:Rubber Sole
2020/03/03 全球购物
店长岗位的工作内容
2013/11/12 职场文书
同学聚会老师邀请函
2014/01/28 职场文书
事假请假条范文
2014/04/11 职场文书
2014年党员自我评议(5篇)
2014/09/12 职场文书
校本课程教学计划
2015/01/19 职场文书
奖励申请报告范文
2015/05/15 职场文书
护士旷工检讨书
2015/08/15 职场文书
话题作文之成长
2019/12/09 职场文书