script标签属性type与language使用选择


Posted in Javascript onDecember 02, 2012

被人问起一个问题:

<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 相关文章推荐
jquery json 实例代码
Dec 02 Javascript
文本框获得焦点和失去焦点的判断代码
Mar 18 Javascript
Script标签与访问HTML页面详解
Jan 10 Javascript
Javascript解析URL方法详解
Dec 05 Javascript
jQuery中DOM树操作之使用反向插入方法实例分析
Jan 23 Javascript
js+html5实现可在手机上玩的拼图游戏
Jul 17 Javascript
Jquery uploadify上传插件使用详解
Jan 13 Javascript
JavaScript实现两个select下拉框选项左移右移
Mar 09 Javascript
js 用于检测类数组对象的函数方法
May 02 Javascript
vue2.0 better-scroll 实现移动端滑动的示例代码
Jan 25 Javascript
vue.js编译时给生成的文件增加版本号
Sep 17 Javascript
javascript简单实现深浅拷贝过程详解
Oct 08 Javascript
JavaScript中valueOf函数与toString方法深入理解
Dec 02 #Javascript
json对象转字符串如何实现
Dec 02 #Javascript
javascript 构造函数强制调用经验总结
Dec 02 #Javascript
js精度溢出解决方案
Dec 02 #Javascript
JavaScript词法作用域与调用对象深入理解
Nov 29 #Javascript
浏览器加载、渲染和解析过程黑箱简析
Nov 29 #Javascript
javascript控制swfObject应用介绍
Nov 29 #Javascript
You might like
PHP 常用函数库和一些实用小技巧
2009/01/01 PHP
php环境配置之CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI比较?
2011/10/17 PHP
php多次include后导致全局变量global失效的解决方法
2015/02/28 PHP
WordPress中自定义后台管理界面配色方案的小技巧
2015/12/29 PHP
Avengerls vs Newbee BO3 第一场2.18
2021/03/10 DOTA
CSS(js)限制页面显示的文本字符长度
2012/12/27 Javascript
JavaScript instanceof 的使用方法示例介绍
2013/10/23 Javascript
JS+CSS实现的日本门户网站经典选项卡导航效果
2015/09/27 Javascript
javascript省市区三级联动下拉框菜单实例演示
2015/11/29 Javascript
JS中innerHTML和pasteHTML的区别实例分析
2016/06/22 Javascript
Javascript中级语法快速入手
2016/07/30 Javascript
jsonp跨域请求实现示例
2017/03/13 Javascript
老生常谈JS中的继承及实现代码
2018/07/06 Javascript
angular 实现同步验证器跨字段验证的方法
2019/04/11 Javascript
Windows系统下安装Python的SSH模块教程
2015/02/05 Python
Python类定义和类继承详解
2015/05/08 Python
pandas Dataframe行列读取的实例
2018/06/08 Python
PyTorch的深度学习入门教程之构建神经网络
2019/06/27 Python
使用python将excel数据导入数据库过程详解
2019/08/27 Python
vscode 配置 python3开发环境的方法
2019/09/19 Python
Python zip函数打包元素实例解析
2019/12/11 Python
Python+OpenCV 实现图片无损旋转90°且无黑边
2019/12/12 Python
Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作
2021/03/03 Python
美国最大的网络男装服装品牌:Bonobos
2017/05/25 全球购物
一加手机美国官方网站:OnePlus美国
2019/09/19 全球购物
银行会计业务的个人自我评价
2013/11/02 职场文书
大学校庆策划书
2014/01/31 职场文书
办公室文员自荐书
2014/02/03 职场文书
前处理组长岗位职责
2014/03/01 职场文书
歌颂祖国演讲稿
2014/05/04 职场文书
医院领导班子四风对照检查材料
2014/09/27 职场文书
乡镇民主生活会发言材料
2014/10/20 职场文书
成绩报告单家长评语
2014/12/30 职场文书
jquery插件实现代码雨特效
2021/04/24 jQuery
python 爬取吉首大学网站成绩单
2021/06/02 Python
MYSQL事务的隔离级别与MVCC
2022/05/25 MySQL