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

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

很多使用javascript的朋友都有这样一个问题:如何选择脚本标签属性类型和语言。为了解决这个疑惑,本文进行了详细的梳理,有需要的可以参考一下。

被问到一个问题:

脚本语言=JavaScript

脚本类型=文本/javascript

脚本

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

虽然一直在用,但是一直没有很好的理解。下面详细解释一下。

查一些资料,主要是关于浏览器支持的。类型和语言属性可用于在脚本标记中指定脚本的类型。在提倡使用类型属性的HTML和XHTML标准中,语言属性受到了批评。不幸的是,这两个属性的值是不同的。

您可能偶尔会看到language的值是VBScript(type为text/vbscript),这意味着包含的脚本代码是用Microsoft Visual Basic Script编写的。

使用JavaScript,您还可以使用语言 JavaScript 1.1 的值,这意味着包含的脚本语句只能由Netscape 3.0或更高版本处理。网景2.0只支持JavaScript 1.0,不能处理标有‘JavaScript 1.1’的脚本。

为了保证脚本程序的正常执行,应该将script标签的 type 属性设置为 javascript ,不应该设置过时的 Languange 属性,除非专门使用了IE支持的VBScript和SCRIPT编码器机制。

各浏览器对于 "type" 和 "language" 属性本身均支持,但是对于其中设置的脚本语言类型识别与支持各异:

当‘类型’和‘语言’同时存在时,所有浏览器都先识别‘类型’属性中的脚本类型;

其中,IE浏览器实际支持JScript和VBScript脚本语言标记和脚本编码器加密;

Chrome Firefox Safari Opera对于 type 属性值的具体识别的容忍度是不一致的,比Chrome Safari宽松,Firefox的验证是最严格的;

在语言属性值识别的容忍度比较中,Chrome Safari仍然是浏览器中最宽松的,IE最严格,Firefox与Opera持平。

在语言编码的对比中,只有IE支持JScript。编码器和VBScript。编码器类型设置,但Firefox Chrome Safari没有。在Opera中,只有在属性值固定为默认的Javascript脚本语言后,输出值才是。

脚本语言=javascript

函数a() {

b= a

}

a();

警戒(b);

/脚本

变量有问题。即使你像上面那样在函数中声明一个变量,它也会变成一个全局变量。

如果用var声明,会有问题。

脚本语言=javascript

函数a() {

var b= a

删除b;

警戒(b);

}

a();

/脚本

结果还是会弹出一个。

为了保证脚本程序的正常执行,应该将script标签的 type 属性设置为 javascript ,不应该设置过时的 Languange 属性,除非专门使用了IE支持的VBScript和SCRIPT编码器机制。

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