HTML中的JavaScript
1.<script>元素
defer:可选。表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本文件有效。
脚本会被延迟到整个页面都解析完毕后再运行。因此,在
<script>
元素中设置
defer
属性,相当于告诉浏览器立即下载,但延迟执行。
2.行内脚本
在使用行内JavaScript代码时,要注意代码中不能出现字符串
</script>
。
浏览器解析行内脚本的方式决定了它在看到字符串
</script>
时,会将其当成结束的
</script>
标签。想避免这个问题,只需要转义字符“\\”即可
<script>function sayScript() {console.log(\"<\\/script>\");}</script>
3.<script>标签位置
现代Web应用程序通常将所有JavaScript引用放在
<body>
元素中的页面内容后面
<!DOCTYPE html><html><head><title>Example HTML Page</title></head><body><!-- 这里是页面内容 --><script src=\"example1.js\"></script><script src=\"example2.js\"></script></body></html>
4.文档模式
最初的文档模式有两种:混杂模式(quirks mode)和标准模式(standards mode)。
前者让IE像IE5一样(支持一些非标准的特性),后者让IE具有兼容标准的行为。虽然这两种模式的主要区别只体现在通过CSS渲染的内容方面,但对JavaScript也有一些关联影响,或称为副作用。
随着浏览器的普遍实现,又出现了第三种文档模式:准标准模式(almost standards mode)。这种模式下的浏览器支持很多标准的特性,但是没有标准规定得那么严格。主要区别在于如何对待图片元素周围的空白(在表格中使用图片时最明显)。
混杂模式在所有浏览器中都以省略文档开头的
doctype
声明作为开关。
标准模式通过下列几种文档类型声明开启:
<!-- HTML 4.01 Strict --><!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01//EN\"\"http://www.w3.org/TR/html4/strict.dtd\"><!-- XHTML 1.0 Strict --><!DOCTYPE html PUBLIC\"-//W3C//DTD XHTML 1.0 Strict//EN\"\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd\"><!-- HTML5 --><!DOCTYPE html>
5.<noscript>元素
<noscript>
元素可以包含任何可以出现在
<body>
中的HTML元素,
<script>
除外。在下列两种情况下,浏览器将显示包含在
<noscript>
中的内容:
- 浏览器不支持脚本;
- 浏览器对脚本的支持被关闭。