<script>元素
HTM4.01中定义了6个属性,可选。
必选的属性
属性 | 值 | 描述 |
---|---|---|
type | MIME-type | 指示脚本的 MIME 类型。 |
可选的属性
属性 | 值 | 描述 |
---|---|---|
async | async | 规定异步执行脚本(仅适用于外部脚本)。立即下载脚本但不妨碍页面其他操作 |
charset | charset | 规定在外部脚本文件中使用的字符编码。少用 |
defer | defer | 规定是否对脚本执行进行延迟,直到页面加载为止。 适用于外部脚本 |
language | script | 不赞成使用。规定脚本语言。请使用 type 属性代替它。 |
src | URL | 规定外部脚本文件的 URL。 |
xml:space | preserve | 规定是否保留代码中的空白。 |
- 内部JavaScript代码自上而下解析。
- 浏览器对页面的<script>先后顺序解析,defer和async则不一定。
需要注意脚本的执行循序。
- 惯例<script>元素放在<head>中,但是浏览器遇到<body>才显示页面,为避免页面延迟,<script>放在<body>内容后。
- 延迟脚本:defer="defer" 延迟脚本在</html>之后执行。注意异步脚本的依赖关系。
XHTML中的JavaScript
标签兼容问题
语法不兼容的错误,例如 < 与 <
- 解决办法:使用CData片段来包含JavaScript代码。
JavaScript放在外部文件的优点
- 可维护:JavaScript放在一个文件中维护方便。
- 可缓存:浏览器能够根据具体的设置缓存链接的所有外部JavaScript文件。即不同页面使用相同的文件时只需要下载一次。
- 适应未来: 外部文件的JavaScript无需使用XHTML和注释 hack。
HTML头的文档模式
混杂模式和标准模式(还有准标准模式)
- 没有声明时默认混杂模式,不值得推荐,因为不同浏览器的差异可能巨大。
标准模式:严格型
准标准模式:过渡性和框架集型
<noscript>元素
可以包含<body>中的除<script>元素外的所有HTML元素。浏览器不支持脚本或者是脚本无效的时候不会显示脚本内容。脚本启动时,浏览器不显示<noscript>包含的内容。
end