一.属性:
src:该属性指定外部JavaScript文件的地址,可以跨域。如果指定了该属性,那么script标签中的内容就会被忽略。
type:指定所使用的脚本语言,可以覆盖默认的脚本语言(即在<META http-equiv="Content-Script-Type" content="type">中定义的脚本类型
)开发者必须指定该属性,该属性没有默认值。
language:(不赞成使用),指定script标签的内容所使用的脚本语言,该属性的值是一些语言的标示符,但是由于语言的标示符不标准,因此该属性被弃用了,偏向于使用type属性指定所使用的脚本语言。在ie中当有多个script标签时,最好为每个script都指定一个language属性,并且script标签的顺序也非常重要,特别是当一个脚本函数作为事件控制器赋予一个或者多个元素上时,xml对于script标签来说是合法的内容,但是xml不是一个脚本语言,如果把xml作为script 的内容如:
<html>
<head>
<SCRIPT LANGUAGE="XML" id="mySrc1">
<offerings>
<class><materials>This should render.</materials><time>1.5
hr</time></class>
</offerings>
</SCRIPT>
<SCRIPT LANGUAGE="Javascript">
function returnIslandRootName()
{
var islandRoot = document.all["mySrc1"].XMLDocument;
alert(islandRoot.nodeName);
}
</SCRIPT>
</head>
<body>
<button onclick="returnIslandRootName()">Test the XML Data Island</button>
</body>
</html>
由于xml数据岛为第一个script标签中的内容,并且该标签指定了language为JavaScript,这时mshtml会在第一个script标签中加载returnIslandRootName
方法,因此会报错,那么正确的会是什么呢?
<html>
<head>
<SCRIPT LANGUAGE="Javascript">
function returnIslandRootName()
{
var islandRoot = document.all["mySrc1"].XMLDocument;
alert(islandRoot.nodeName);
}
</SCRIPT>
<SCRIPT LANGUAGE="XML" id="mySrc1">
<offerings>
<class><materials>This should render.</materials><time>1.5
hr</time></class>
</offerings>
</SCRIPT>
</head>
<body>
<button onclick="returnIslandRootName()">Test the XML Data Island</button>
</body>
</html>
defer:该属性按时浏览器不立即让script标签产生文档内容。因此这样浏览器不用被阻止渲染文档内容。在firefox中需要Requires Gecko 1.9.1以上的引擎。
charset:该属性指定了外部JavaScript文件的编码方式。对于行内JavaScript文件的编码方式不起作用。
async:该属性需要Gecko 1.9.2以上的引擎,是firefox专有的属性,用来异步执行JavaScript脚本,只在拥有src属性时才气作用,
二.指定脚本语言的方式:
1.指定整个文档默认的脚本语言。
<META http-equiv="Content-Script-Type" content="type">
content:指定脚本语言的类型如:"text/tcl", "text/javascript", "text/vbscript".
由于文档默认的脚本类型是JavaScript,因此我们在使用JavaScript时最简单且兼容性最好的方式为<script></script>
2.指定当前脚本块所使用的脚本语言
通过script标签的type属性指定,这样会覆盖1中所定义的脚本语言类型。
如:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<HTML>
<HEAD>
<TITLE>A document with SCRIPT</TITLE>
<META http-equiv="Content-Script-Type" content="text/tcl">
<SCRIPT type="text/vbscript" src="http://someplace.com/progs/vbcalc">
</SCRIPT>
</HEAD>
<BODY>
<SCRIPT type="text/javascript">
...some JavaScript...
</SCRIPT>
</BODY>
</HTML>
上面的例子指定这个文档所使用的默认的脚本语言类型text/tcl,第一块script中所以用的脚本类型为text/vbscript,第二块脚本块中所使用的脚本类型为text/javascript.
三.如果浏览器不支持所指定的脚本类型。应该用noscript标签指定。如: <SCRIPT type="text/tcl">
...some Tcl script to insert data...
</SCRIPT>
<NOSCRIPT>
<P>Access the <A href="http://someplace.com/data">data.</A>
</NOSCRIPT>
参考:http://www.w3.org/TR/html401/interact/scripts.html
https://developer.mozilla.org/En/HTML/Element/Script
http://msdn.microsoft.com/en-us/library/ms535892(VS.85).aspx