JavaScript高级程序设计:第二章

在HTML中使用JavaScript

1.<script>元素:向HTML页面中插入JavaScript的主要方法就是使用<scritp>元素。HTML4.01为<script>定义了下列6个属性。

(1)async:可选。表示立即下载脚本,但不妨碍页面中的其他操作,比如下载其他资源或等待加载其他脚本。只对外部脚本文件有效。

(2)charset:可选。表示通过src属性指定的代码的字符集。由于大多数浏览器会忽略它的值,因此这个属性很少有人用。

(3)defer:可选。表示脚本可以延迟到文档完全被解析和显示之后再执行。只对外部脚本文件有效。

(4)language:已废弃。原来用于表示编写代码使用的脚本语言,大多数浏览器会忽略这个属性。

(5)src:可选。表示包含要执行代码的外部文件。

(6)type:可选。可以看成是language的替代属性;表示编写代码使用的脚本语言的内容类型。目前type的值大多数仍旧使用text / javascript属性。这个属性并不是必须的,如果没有指定这个属性,则其默认值为text / javascript。

2.使用<script>元素的方式有两种:

(1)直接在页面中嵌入JavaScript代码:

在使用<script>元素嵌入JavaScript代码时,只需为<script>指定type属性值。然后,像下面这样把JavaScript代码直接放在元素内部即可:

<script  type=” text / javascript”>

function  sayHi ( ) {

alert ( “Hi! “ ) ;

}

</script>

包含在<script>元素内部的代码将被从上至下一次解析。注意,不要在代码中任何地方出现“</script>”字符串,否则会产生错误。因为浏览器遇到</script>时会认为这是结束标签。可以通过吧这个字符串分隔为两个部分可以解决这个问题,例如:

<script  type=”text / javascript ”>

function sayScript(){

alert(“<\ /script>”);

}

这样就不会早晨浏览器的误解。

(2)包含外部JavaScript文件:如果要通过<script>元素来包含外部JavaScript文件,那么src属性就是必须的。这是属性的值是一个指向外部JavaScript文件的链接。例如:

<script  type=”text / javascript” src=”example.js”> </script>

外部文件只需包含通常要放在开始的<script>和结束的</script>之间的那些JavaScript代码即可。可以在XHTML文档中省略</script>标签,例如:

<script  type=” text / javascript ” src=”example.js” />

但是不能再HTML文档使用这种语法,原因是这种语法不符合HTML规范。而且也得不到某些浏览器的正确解析。

需要注意的是:带有src属性的<script>元素不应该只在其<script>和</script>标签之间再包含额外的JavaScript代码。如果包含了嵌入的代码,则只会下载并执行外部脚本文件,嵌入的代码会被忽略。

3.标签的位置:

所有<script>元素都应该放在界面的<head>元素中。例如:

<!DOCTYPE html>

<html>

<head>

<title>Example HTML Page </title>

<script type=”text / javascript” src=”example.js”></script>

<script type=”text / javascript” src=”example2.js”></script>

</head>

<body>

<!—这里放内容-->

</body>

</html>

这种做法就是要把所有外部文件的引用都放在相同的地方。这意味着必须等到所有JavaScript代码都被下载、解析和执行完成以后才能开始呈现页面的内容。对于需要很多JS代码的页面来说无疑会导致延迟。

为了避免这个问题,现代Web应用程序一般都把全部JavaScript引用放在<body>元素中页面的内容后面。如下所示:

<!DOCTYPE  html>

<html>

<head>

<title>Example HTML Page </title>

</head>

<body>

<!—这里放内容 -->

<script  type=”text / javascript” src=”example.js” ></script>

<script  type=”text / javascript” src=”example.js ” ></script>

</body>

</html>

这样,在解析包含JavaScript代码之前,页面的内容将完全呈现在浏览器中,而用户也会因为浏览器窗口显示空白页面的时间缩短而感到打开页面的速度加快了。

4.脚本:

(1)延迟脚本:

HTML4.01为<script>标签定义了defer属性。这个属性的用途是表明脚本在执行时不会影响页面的构造。也就是说,脚本会被延迟到整个页面都解析完毕后再运行。因此,在<script>元素中设置defer属性,相当于告诉浏览器立即下载,但延期执行。

<!DOCTYPE  html>

<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>

<!--  这里放内容 -->

</body>

</html>

html5规范要求脚本按照它们出现的先后顺序执行,因此第一个延迟脚本会先于第二个延迟脚本执行,在现实当中,延迟脚本不一定按照顺序执行,也不一定会在DOMContentLoaded事件触发前执行,因此最好只包含一个延迟脚本。

(2)异步脚本:

HTML5为<script>元素定义了async属性。这个属性与defer属性类似,都用于改变处理脚本的行为。同样与defer类似,async只适用于外部脚本文件,并告诉浏览器立即下载文件。但与defer不同的是,标记为async的脚本并不保证按照指定它们的先后顺序执行。例如:

<!DOCTYPE  html>

<html>

<head>

<title>Example HTML Page </title>

<script  type=”text / javascript” async  src=”example1.js” ></script>

<script  type=”text / javascript” async  src=”example2.js” ></script>

</head>

<body>

<- - 这里放内容 - ->

</body>

</html>

在以上代码中,第二个脚本文件可能会在第一个脚本文件之前执行。因此确保两者之间互不依赖非常重要。指定async属性的目的是不让页面等待两个脚本下载和执行,从而异步加载页面其他内容。为此,建议异步脚本不要在加载期间修改DOM。

异步脚本一定会在页面的load事件之前执行。但可能会在DOMContentLoaded事件触发之前或之后执行。

5.嵌入代码与外部文件:

尽可能使用外部文件来包含JavaScript代码,有以下优点:可维护性、可缓存、适应未来。

6.文档模式:最初的两种文档模式是:混杂模式和标准模式。这两种模式主要影响CSS内容的呈现,某些情况下也会影响JavaScript的解释执行。

7.<noscript>元素:

早期浏览器都面临一个特殊问题,当浏览器不支持JavaScript时如何让页面平稳地退化。对这个问题的最终解决方案就是创造一个<noscript>元素,用以在不支持JavaScript的浏览器中显示替代的内容。这个元素可以包含能够出现在文档<body>中的任何HTML元素——<script>元素除外。包含在<noscript>元素中的内容只有在下列情况下才会显示出来:

(1)浏览器不支持脚本;

(2)浏览器支持脚本,但是脚本被禁用。

符合上述任何一个条件,浏览器都会显示<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。

</noscript>

</body>

</html>

这个页面会在脚本无效的情况下向用户显示一条消息。而在启用了脚本的浏览器中,用户永远也不会看到它——尽管它是页面的一部分。

时间: 2025-01-04 22:28:27

JavaScript高级程序设计:第二章的相关文章

Javascript高级程序设计——第二章:在HTML中使用Javascript

第二章:在HTML中使用Javascript <script>元素 向HTML页面中插入Javascript的主要方法,就是使用<script>元素,<script>元素有六个属性: async:可选.表示应该立即下载脚本,但不妨碍页面的其他操作,比如下载其他资源或等待加载其他脚本,只针对外部脚本有效. defer:可选.表示脚本可以延迟到文档完全被解析和显示之后再执行.只针对外部脚本有效. src:可选.表示包含要执行代码的外部文件. type:可选.表示编写代码使用

读书笔记 - javascript 高级程序设计 - 第二章 在Html中使用JavaScript

1 <script>的6个属性 async  立即下载当前script标签的外部脚本 但不能影响别的 charset 没用了 defer  文档显示之后再执行脚本,只对外部脚本有效 language 没用了 src type 描述代码内容Mine类型 默认就是text/javascript 没什么用 2 在解释器对<script>元素内部的所有代码求值完毕以前 页面中的其余内容都不会被浏览器加载或显示 3 有两种script 嵌入式 外部引入式 在解析外部引入式的js文件时,页面的

javascript高级程序设计 第九章-- 客户端检测

javascript高级程序设计 第九章-- 客户端检测 客户端检测是javascript开发中最具争议的一个话题,由于浏览器间存在差别,通常需要根据不同浏览器的能力分别编写不同的代码.有下列常使用的客户端检测方法:能力检测:在编写代码之前先检测特定浏览器的能力.例如,脚本在调用某个函数之前,可能要先检测该函数是否存在.这种检测方法将开发人员从考虑具体的浏览器类型和版本中解放出来,让他们把注意力集中到相应的能力是否存在上.能力检测无法精确地检测特定的浏览器和版本.怪癖检测:怪癖实际上是浏览器中存

javascript高级程序设计 第一章--javascript简介

javascript高级程序设计 第一章--javascript简介Netscape开发的javascript最初的目的就是处理由服务器负责的一些输入验证操作,而在js问世之前,必须                    把表单数据发到服务器端用户才能得到反馈.如今的js不再局限于简单的数据验证,而且具备了与浏览器窗口及其内容等所有方面的交互能力,js已经发展成功能全面的面向客户端的编程语言.javascript由Netscape公司开发,原名Livescript,是为了迎合当时的java热,所

javascript高级程序设计---第二、三章

在HTML中引用javaScript javascript的几个属性  type async(异步加载 只适用于外部JS且IE8以上 HTML5规范 先于load执行) src defer(延迟加载 只适用于外部加载 先于load执行) 在HTML中使用外部JS代码的优点,1.便于维护 ,2.可缓存.3.适应未来. 在javascript中区分变量的大小写 比如(test 和 Text是?的两个变量) 在ECMA5中新模式,严格模式  'use strict'在js代码中加入这句话即为严格模式

《JavaScript高级程序设计 第二版》理解对象

声明:这类属于学习笔记,主要是摘录书中内容,比较少的整理.内容经常是跳跃的,建议您阅读书本,收益更大. ECMA-262把对象定义为“无序属性的集合,其属性可以包含基本值,对象或者函数” 对象时一组没有特定顺序的值,每个属性或方法都有一个名字,每个名字都映射一个值. 每个对象都是基于一个引用类型创建的,这个引用类型可以是第5章讨论的原生类型,也可以是开发人员定义的类型 常规的创建对象的方法是通过Object这个内置对象来进行创建出一个实例,然后再給其添加属性和方法 var person=new

Javascript高级程序设计——第一章:javascript简介

第一章 javascript简介 1.Javascript简史 javascript诞生于1995年,是由网景公司的Brendan Eich开发的,最初的目的是在客户端处理一些输入验证操作,自此后成为常见浏览器的特色功能,如今用途已经不限于简单的数据验证,而是具备与浏览器窗口及其内容等几乎所有方面交互的能力.当时javascript是为了搭上媒体热炒的java才改名为javascript其最初名为livescript. 在javascript取得巨大成功后,微软公司也在自己的浏览器中加入了名为J

读书笔记 - javascript 高级程序设计 - 第一章 简介

第一章 简介   诞生时间 1995 最初用途 客服端验证 第一版标准 注意是标准 1997年 Ecma-262  一个完整的js实现由三部分组成 ECMAScript DOM 文档对象模型 BOM 浏览器对象模型 ECMAScript的宿主环境 web浏览器 Node(服务器js平台) adobe flash js和as的关系 他们都实现了 ECMAScript 五大主流浏览器 IE Firefox Safari Chrome Opera dom介绍 它是针对xml但经过扩展用于html的应用

《javascript高级程序设计》第二、三章知识点整理

第二章知识点总结 1.<script>在html中的使用 主要功能:在页面中嵌入javascript代码或包含外部javascript文件. 常用属性: type:用于定义脚步代码的语言类型,默认为text/javascript. src:包含外部域的javascript文件. defer:表示脚本会在整个页面加载完毕之后运行,只对外部文件有效,最好只包含一个延迟脚本. async:脚本在不妨碍其他操作的情况下立即下载(不保证下载文件的顺序). 插入位置:在页面<body>标签页面

javascript高级程序设计 第十四章--表单脚本

javascript高级程序设计 第十四章--表单脚本 在HTML中表单由<form>元素表示,在js中表单对应的是HTMLFormElement类型,这个类型也有很多属性和方法:取得表单元素的引用还是为它添加id特性,用DOM操作来获取表单元素:提交表单:把<input>或<button>元素的type特性设置为"submit",图像按钮把<input>元素的type特性设置为"image",也可以调用submit(