- HTML5+ CSS3+JavaScript 网页设计实战(视频教学版)
- 常新峰
- 1877字
- 2021-03-24 12:49:15
2.7 引用JavaScript脚本文件
本节介绍引用JavaScript脚本文件的用法,了解如何在HTML网页中使用JavaScript代码。
2.7.1 概述
目前,HTML网页设计几乎离不开JavaScript脚本语言的支持。JavaScript是一种解释型编程语言,其解释器通常也被称为JavaScript引擎。目前,业内主流浏览器均内置了JavaScript引擎,且该引擎的性能优劣会直接影响到浏览器的性能,进而直观地体现到用户体验上。
在HTML网页中增加JavaScript脚本语言,可以使得信息和用户之间不仅只是一种显示和浏览的关系,而是实现了一种实时的、动态的、可交互式的表达能力,因此深受广大设计人员所青睐。
下面简单介绍在HTML网页中使用JavaScript脚本语言的几种方法,本小节的内容也为后面的章节做出了铺垫。
2.7.2 内嵌式JavaScript脚本
先来看内嵌式JavaScript脚本的语法,具体如下:
如果读者想在HTML网页中嵌入脚本,一般需要遵循上面的写法,并将脚本语言写在两个script标签元素之间。
下面看一段使用内嵌式JavaScript脚本语言的HTML网页的示例代码(参见源代码ch02/ch02-html-script-embed.html文件)。
【代码2-9】
【代码解析】
先看第12~16行代码,这里是一段内嵌在head标签元素中的脚本代码。其中,第13行代码使用document.write()方法尝试向HTML网页中写入一行文本,因为调用document.write()方法将会打开一个页面输出流,所以在第14行代码必须使用document.close()方法对其进行关闭(请读者注意,如果打开了输出流,操作完毕后就要关闭它)。第15行代码使用document.getElementById()方法尝试在一个div标签元素(id值为"id-div-header",在第22行代码中定义)内插入一段文本。
然后看第25~29行代码,这里是一段内嵌在body标签元素中的脚本代码。其中,第26行代码使用document.write()方法打来一个输出流尝试在HTML网页中动态创建了一个div标签元素(id值为"id-div-dynamic"),并在第27行代码使用document.close()方法关闭了该输出流。第28行代码使用document.getElementById()方法尝试在这个动态创建的div标签元素内插入一段文本。
最后看第34~36行代码,这里同样是一段内嵌在body标签元素中的脚本代码。其中,第35行代码使用document.getElementById()方法尝试在一个div标签元素(id值为"id-div-body",在第32行代码中定义)内插入一段文本。
下面运行测试网页,效果如图2.13所示。
图2.13 内嵌式JavaScript脚本
从图2.13中看到网页中输出的信息比较多,下面针对图中输出结果进行详细的解释:
页面中最先输出的是一行文本信息,通过查看【代码2-9】知道是第13行代码中输出的,而页面中第二行输出的信息是第21行代码定义的,可见在head标签元素之间定义的第13~15行脚本代码最先被编译执行了,是先于HTML网页DOM树被解析之前就执行了,这完全是基于在HTML网页定义的JavaScript脚本语言编译执行的一项基本原则,即“按顺序载入,载入即执行”。
页面中输出的第三行信息是第22行代码定义的,而第15行脚本代码尝试在div标签元素(id值为"id-div-header")中插入文本信息的操作却没有显示,这是因为该标签元素是在第22行定义的,是在脚本之后定义的,相当于脚本执行操作时还没有被定义。
紧接着,页面输出的第一条横线是第23行代码定义的。
页面中第四行输出也是一行文本信息,通过查看【代码2-9】知道是第26行脚本代码所输出的。
之后页面中第五行显示的文本信息,是第28行代码尝试动态插入到第33行代码创建的div标签元素(id值为"id-div-dynamic")之后的,说明插入文本的操作成功了。
然后,页面输出的第二条横线是第30行代码定义的。
页面中第六行显示的文本信息,是第32行代码定义的div标签元素(id值为"id-div-body")定义的。
之后页面中第七行显示的文本信息,则是第35行代码尝试动态插入在第32行代码定义的div标签元素(id值为"id-div-body")之后的,说明插入文本的操作成功了。
通过上面的分析,读者会对HTML网页中定义的JavaScript脚本语言的编译执行顺序有了一个初步了解,其实JavaScript脚本执行顺序需要遵循以下几个大的原则:
- 按顺序载入。
- 载入即执行。
- 执行时会阻塞后续内容。
所以,为了避免第15行的脚本代码没有被有效执行的情况出现,一般建议将自定义脚本放在HTML网页的最后,这样可以保证全部HTML网页DOM树载入后,再执行JavaScript脚本。
2.7.3 引入外部JavaScript脚本
这一小节介绍使用script标签引入外部JavaScript脚本的方法,这里先明确使用script标签载入外部脚本库的语法,看这行代码:
如果读者想在HTML网页中载入外部JavaScript脚本,一般需要遵循上面的写法,并建议放在HTML文档最后。
下面看一段引入外部JavaScript脚本的HTML网页的示例代码(参见源代码ch02/ch02-html-script-src.html文件)。
【代码2-10】
【代码解析】
第21行代码使用script标签元素载入了一个外部脚本,其中通过src属性定义了该脚本的路径为"js/src.js",该路径是一个基于本HTML网页的相对路径,将其转换成绝对路径为"ch02/js/src.js"。
第19行代码通过div标签元素定义了一个层区域,其id值为"id-div-body"。
下面看引入的外部JavaScript脚本代码(参见源代码ch02/js/src.js文件):
【代码2-11】
在【代码2-11】中,使用document.getElementById()方法尝试在【代码2-10】中第26行代码定义的div标签元素(id值为"id-div-body")内插入一段文本。
下面运行测试网页,效果如图2.14所示。可以看到,页面中第三行显示的文本("import body js.")信息就是【代码2-11】中执行的脚本代码所插入的。
图2.14 引入外部JavaScript脚本