元素script

HTML文件的基本结构

script
适用DTD:Strict Transitional Frameset   适用浏览器:All
释义 插入脚本(script)

语法
<script 属性="属性值">~标签内容~</script>

说明
script元素用来在网页中插入客户端脚本并且配置脚本语言的区域范围,script元素可以配置在headbody元素的标签内容中并且次数不限
在HTML文件中可以将script元素的标签内容(即脚本语句)用HTML注释<!---->以及相应的脚本注释包括起来,从而避免旧版本的浏览器因不支持脚本而将脚本语句当成文字给显示出来
在XHTML文件中,script元素被声明为#PCDATA内容形式,<&被视为标签的开始,而&lt;&amp;又会被认为是<和&,所以必须将script元素的内容包括在CDATA标记中,也就是使用XML的CDATA section形式。而在需要以text/html发送的文件中,为了能在不能处理CDATA部分的浏览器中隐藏,CDATA部分的起始和结束标签也需要注释掉
可以直接在页面中嵌入脚本代码,也可以
终止标签不可省略

属性
属性 属性值 说明
① type MIME类型 指定脚本的内容类型(MIME类型)。若脚本为JavaScript,则属性值为text/javascript;若脚本为VBScript,则属性值为text/vbscript;若未指定此属性,浏览器会默认为脚本语言是JavaScript。微软的IE浏览器还可识别text/jscript和text/vbs分别作为对Jscript和VBScript的指定。其他常见的脚本类型还有text/tcl
language 字符串 指明脚本的语言,如JavaScript、VBScript。如果不指定,则浏览器默认为是JavaScript。此属性已不推荐使用,可使用type属性。
不过使用language属性可以指定脚本语言的版本号,从而实现更大的兼容性
③ src URI 外联脚本文件的URI。设定此属性后,标签内容中的脚本语句将被忽略
④ charset 字符集 指向src属性指定的外部脚本文件的字符编码。当外部脚本文件使用了不同的字符集编码时,此属性非常有用
⑤ defer 空值|defer 此布尔属性设置后就告诉浏览器此脚本不打算生成任何文档内容(比如JavaScript代码中不含有“document.write”),因此浏览器可以连续分析和绘出页面
⑥ 通用属性:id 查看
nbsp;
根据W3C的HTML 4.01规格书,应当在文档中定义默认脚本语言,可以使用meta元素,包含在head中:
<meta http-equiv="Content-Script-Type" content="type">
其中type为MIME类型:"text/tcl", "text/javascript", "text/vbscript"等。
不幸的是,似乎浏览器不支持这种做法。

为了避免不支持脚本的浏览器把脚本代码内容当作普通文本显示在页面中,需要将脚本语句包含在HTML中,这样,不支持脚本的浏览器会把脚本语句当作HTML注释,而智能的脚本引擎能理解并执行脚本。或者把脚本放在外部文件中,然后用src指向它。具体如下:
对于JavaScript
JavaScript脚本引擎允许字符串<!--出现在脚本元素的开头,并且会忽略当前行内余下的字符。JavaScript将//解释为当前行的注释的开始,即从//开始到行尾的字符都被忽略,因此使用它将字符串<!--从JavaScript解析器前隐藏。
<script type="text/javascript">
<!-- 将脚本内容从旧版本的浏览器前隐藏
function square(i) {
document.write("The call passed ", i ," to the function.","<BR>")
return i * i
}
document.write("The function returned ",square(5),".")
// 结束隐藏 -->
</script>
对于VBScript
在VBScript中,单引号字符串'用作当前行内注释的开头,所以使用它可以将字符串-->从VBScript中隐藏,例如:
<script type="text/vbscript">
<!--
Sub foo()
...
End Sub
' -->
</script>
对于TCL
在Tcl中,字符串#用作当前行内注释的开头:
<script type="text/tcl">
<!-- 将脚本内容从旧版本的浏览器前隐藏
proc square {i} {
document write "The call passed $i to the function.<BR>"
return [expr $i * $i]
}
document write "The function returned [square 5]."
# 结束隐藏 -->
</script>

示范
<script type="text/javascript">
<!--
[用于HTML文档的脚本语句]
//-->
</script>

范例
下面的例子显示了XHTML文件基础结构: 运行打印
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>元素script</title>
</head>
<body>
<h3>script元素,在网页中嵌入脚本</h3>
<script type="text/javascript">
<!--
var txt=prompt("请随便输入几个字","");
document.write("这是用JavaScript写出来的文字:<font color='red'>"+txt+"<\/font>");
//-->
</script>
<hr>
<script type="text/vbscript" language="vbscript">
<!--
txt2=inputbox("请再次随便输入几个字","VBSCRIPT","")
document.write "这是用VBScript写出来的文字:<font color=""red"">"&txt2&"</font>"
'-->
</script>
</body>
</html>

参阅
noscript
style