第二章
- 向HTML页面中插入JavaScript的主要方法是使用< script >元素。
- HTML 4.01为< script >定义了下列6个属性:
asyns | 可选。表示应该立即下载脚本,但不妨碍页面中的其他操作,比如下载其他资源或等待加载其他脚本。只对外部脚本文件有效。 |
charset | 可选。表示通过src属性指定的代码的字符集。由于大多数浏览器会忽略它的值,因此这个属性很少有人用。 |
defer | 可选。表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本文件有效。IE7即更早版本对嵌入脚本也支持这个属性。 |
language | 已废弃。原来用于表示编写代码使用的脚本语言(如JavaScript、JavaScript1.2或VBScript)。大多数浏览器会忽略这个属性,因此也没有必要再用了。 |
src | 可选。表示包含要执行代码的外部文件。 |
type | 可选。可以看成是language的替代属性;表示编写代码使用的脚本语言的内容类型(也称为MIME类型)。 |
- 使用< script >元素的方法有两种:直接在页面中嵌入JavaScript代码和包含外部JavaScript文件。
<script type="text/javascript"> ... </script>
<script type="text/javascript" src="deom.js" />
- src可以引入外部域的JavaScript文件。
- 不存在defer和asyns属性时,浏览器按< script >元素在页面中出现的先后顺序对他们依次进行解析。
- 将标签放到< body >末端可以先呈现内容,再解析JavaScript代码。
- 设置defer属性,可以延迟解析该脚本。但在现实中多个延迟脚本并不一定按照顺序执行,最好只包含一个延迟脚本。
<script type="text/javascript" defer="defer" src="deom1.js" />
<script type="text/javascript" src="deom2.js" />
- 设置asyns属性,同defer属性类似,都用于改变处理脚本的行为。不同的是,标记为async的脚本并不保证按照指定它们的先后顺序执行。异步脚本一定会在页面的load事件前执行。
<script type="text/javascript" async src="deom1.js" />
<script type="text/javascript" async src="deom2.js" />
- 可扩展超文本标记语言(XHTML,Extensible HyperText Markup Language),将HTML作为XML的应用而重新定义的标准。其编写更加严格
//在XHTML中小于号(<)会被当新标签解析,作为标签其后不能加空格,因此会导致语法错误
<script type="text/javascript">
function compare(a,b){
if(a < b){
...
}
}
</script>
//方法一:替换
<script type="text/javascript">
function compare(a,b){
if(a < b){
...
}
}
</script>
//方法二:引入CData
<script type="text/javascript"><![CDATE[
function compare(a,b){
if(a < b){
...
}
}
]]></script>