习斋 2007-3-4 04:25
< script>与< script language="javascript">的区别
1.为了告诉WEB浏览器编写脚本时用的是什么语言,标记<script>使用了一个可选的属性language.理解指定的脚本语言的浏览器将运行脚本,不知道该语言的浏览器将忽略它.
<script language="JavaScript">
//JavaScript代码
</script>
<script language="VBscript">
'Vbscript代码
</script>
JavaScript是WEB默认的脚本语言,如果省略了language属性,Netscape和InternetExplorer都会假定脚本是用JavaScript编写的.
2.HTML4规范标准化了<script>标记,不过它不赞成使用language属性,因为它没有脚本语言名的标准集合.不过该规范主张使用type属性,将脚本评议指定为MIME类型.因此.理论上说来,嵌入式javascript脚本主张使用的方法如下:
<script type="text/javascript">
事实上,对language属性的支持仍然比新的type属性好.
还有一方法.
在<head>加入如下代码
<meta http-equiv="content-Script-Type" content="text/javascript" />
如果这样做.无需指定language或type属性,就可以安全地使用javascript脚本.
3.language属性还要以用来指定解释脚本需要的javascript版本.
假定你编写的脚本使用了javascript1.5的异常处理特性,那么要避免在不支持这种语言的浏览器中产生语法错误,需要将如下的标记嵌入你的脚本:
<script language="JavaScript1.5">
如果这样做,那么只有支持javascript1.5(和它的异常处理特性)的浏览器才能运行该脚本.其它浏览器都将忽略它.
注意使用版本为JavaScript1.2.
3.defer性质
HTML4定义了<script>标记的一个性质,虽然该性质还不常用,但是仍然很重要,脚本可以调用document.write()方法动态地给文件添加内容.因此当HTML解析器遇到脚本时,它必须停止解析文档,等待脚本执行.
如果你编写的脚本不会生成任何文档输出(例如定义函数,但从不调用document.write()脚本.不可以在<script>标记中使用defer性质,暗示浏览器可以继续解析HTML文档,推迟执行脚本,直到它遇到了不能推迟执行的脚本为止.这样会提高选用defer性质的浏览器的性能.注意defer不是一个值
<script defer>
//不调用document.write()方法的javascript代码
</script>