在HTML中使用JavaScript
1.<script>
元素
在HTML中使用<script>
嵌入JavaScript
HTML 4.01 为<script>
定义了下列 6 个属性。
async:可选。表示应该立即下载脚本,但不应妨碍页面中的其他操作,比如下载其他资源或等待加载其他脚本。只对外部脚本文件有效。
charset:可选。表示通过src属性指定的代码的字符集。由于大多数浏览器会忽略它的值,因此这个属性很少有人用。
defer:可选。表示脚本可以延迟到文档完全被解析和显示之后再行。只对外部脚本文件有效。IE7及更早版本对嵌入脚本也支持这个属性。
- language:已废弃。原来用于表示编写代码使用的脚本语言(如 JavaScript、JavaScript1.2
或 VBScript)。大多数浏览器会忽略这个属性,因此也没有必要再用了。 src:可选。表示包含要执行代码的外部文件。
type:可选。可以看成是language的替代属性;表示编写代码使用的脚本语言的内容类型(也称为 MIME 类型)。虽然
text/javascript
和text/ecmascript
都已经不被推荐使用,但人们一直以来使用的都还是text/javascript
。实际上,服务器在传送 JavaScript 文件时使用的
MIME 类型通常是application/x–javascript
,但在type中设置这个却可能导致脚本被忽略。另外,在非IE浏览器中还可以使用以下值:application/javascript
和application/ecmascript
。考虑到约定俗成和最大限度的浏览器兼容性,目前 type 属性的值依旧还是text/javascript
。不过,这个属性并不是必需的,如果没有指定这个属性,则其默认值仍为text/javascript
。
使用<script>
元素的方式有两种:直接在页面中嵌入 JavaScript 代码和包含外部 JavaScript文件。在使用<script>
元素嵌入JavaScript代码时,只须为<script>
指定type属性。然后,像下面这样把JavaScript代码直接放在元素内部即可:
<script type="text/javascript">
function fun(){
alert("hello")
}
</script>
包含在<script>
元素内部的 JavaScript 代码将被从上至下依次解释。
在解释器对<script>
元素内部的所
有代码求值完毕以前,页面中的其余内容都不会被浏览器加载或显示。
在使用<script>
嵌入 JavaScript 代码时,记住不要在代码中的任何地方出现</script>
字符串。如果必须出现,请使用/转义符<\/script>
- 在使用
<script>
包含外部文件时使用src属性。在解析外部文件时(包括下载)会停止页面的处理。在带有src属性的<script>
中间不能再嵌入其他代码 ,否则不会执行。
2.标签的位置
按照传统的做法,所有<script>
元素都应该放在页面的
`<!DOCTYPE html>
Example HTML Page`
这样做或是浏览器在所有的js文件都下载解析和执行完成后才开始显示页面(浏览器遇到body
才会开始呈现内容)
为了避免这个问题,现代 Web 应用程序一般都把全部 JavaScript 引
用放在
<!DOCTYPE html>
<html>
<head>
<title>Example HTML Page</title>
</head>
<body>
<!-- 这里放内容 -->
<script type="text/javascript" src="example1.js"></script>
<script type="text/javascript" src="example2.js"></script>
</body>
</html>
这样,在解析包含的JavaScript代码之前,页面的内容将完全呈现在浏览器中。而用户也会因为浏览器窗口显示空白页面的时间缩短而感到打开页面的速度加快了。
3.文档模式
doctype
- 混杂模式
- 标准模式
- 准标准模式
##4.<noscript>
这个元素可以包含能够出现在文档<body>
中的任何 HTML 元素——<script>
元素除外。包含
在<noscript>
元素中的内容只有在下列情况下才会显示出来:
- [ ] 浏览器不支持脚本;
- [ ] 浏览器支持脚本,但脚本被禁用。
符合上述任何一个条件,浏览器都会显示<noscript>
中的内容。而在除此之外的其他情况下,浏览器不会呈现<noscript>
中的内容。示例:
<html>
<head>
<title>Example HTML Page</title>
<script type="text/javascript" defer="defer" src="example1.js"></script>
<script type="text/javascript" defer="defer" src="example2.js"></script>
</head>
<body>
<noscript>
<p>本页面需要浏览器支持(启用) JavaScript。</p>
</noscript>
</body>
</html>