作者:施宏斌 页数:751 出版社:empty |
本书是最新的JavaScript指南。在本书中, 讨论了如何使用JavaScript来开发健壮的Web应用程序, 并介绍了开发具有可交互性和个性化的Web应用2899程序所必需的基础知识。本书将通过Step-by-Step的方式来介绍JavaScript这一功能强大的脚本语言。通过本书的学习, 立即就能增强Web站点的用户体验。lava ScriptAjaxWeb 2.0对象的威力。本书还介绍了如何操纵最新版本浏览器所提供的BOM对象。在本书的高级主题中, 将介绍如何使用cookie, 以及如何应用DHTML技术使Web页面焕发动感和活力。JavaScript来实现与远程服务器的通信。简而言之, 本书将帮助您创建具有专业水准的Web应用程序, 并实现与用户的交互。
要想增加网站的访问量, 就需要创建令人激动的Web应用程序来吸引用本书首先介绍了JavaScript的基本语法。
在JavaScript中如何使用对象, 如Date对象和String对象, 来管理复杂的数据类型,并简化程序的设计。使用表单、窗体和其他控件的技巧。如何发现JavaScript代码中的常见错误和逻辑错误, 以及如何使用如何在页面中集成ActiveX控件或插件, 以扩展浏览器的功能。
本书适用于所有想要学习JavaScript脚本编程的人。阅读本书应该具有HTML的基础知识, 并知道如何创建静态的Web页面, 但是读者并不需要具有程序设计的经验。
前言
JavaScript是一种脚本语言, 它可以增强静态Web应用的功能, 从而为Web页面提供本书的宗旨在于介绍使用JavaScript进行开发的基础知识, 即JavaScript是什么,为了最好地汲取本书中的知识, 读者应该对HTML有所了解, 并知道如何创建静态的另外, 如果读者已经具备了编写程序的背景, 并对计算机知识和Web技术有所了解。对于所有的读者,希望本书物有所值。在本书中, 我们将详细介绍什么是JavaScript, 以及JavaScript的基础语法。本书将详哪怕对于一个程序设计方面的专家, 随着代码长度的增加, 错误也在所难免, JavaScript随后, 本书将介绍一些JavaScript的高级主题, 例如如何使用cookie, 以及如何使用对于本书中介绍的每一个新概念,都将以相应的实例加以说明。这些实例可以对所学在本书的前半部分中,将创建一个复杂的应用实例——“在线小测试”程序,该程序JavaScript代码是纯文本的, 因此要创建JavaScript程序, 只须使用一个文本编辑器即另外, 为了测试本书中的JavaScript代码, 还需要一个支持较新版本JavaScript的浏览在读者学习本书中的示例时,可以手工输入所有的代码,也可以使用本书附带的源代提示:许多图书的书名都很相似, 所以通过ISBN查找本书是最简单的, 本书的英文原版的动态的、个性化的内容, 通过JavaScript还可以与用户进行交互。JavaScript提升了用户访问站点时的用户体验,增强了网站对用户的吸引力。现在,令人炫目的下拉菜单、滚动的文字和动态的内容己经广泛应用于各种Web站点, 这一切都是通过JavaScript来实现的。各种主流的现代浏览器都支持JavaScript, 实际上JavaScript语言已经成为客户端Web开发的首选脚本语言。另外, JavaScript语言也可以应用于Web之外的其他场合, 例如Windows系统中的自动管理任务。JavaScript代码是如何运行的, 以及使用JavaScript能够实现哪些功能等。本书将先介绍JavaScript语言的基本语法, 然后再介绍如何使用JavaScript创建功能强大的Web应用程序。读者无须为没有编程经验而担心,在本书中将详细地介绍编写程序的相关知识。学习JavaScript是通向程序设计世界的一道大门, 通过对本书中基础知识的学习和理解, 就可以进一步学习编程世界中的新知识和其他高级技术。本书读者对象Web页面。除此之外, 读者无须具备任何编程基础。本书同样适合于具有编程经验的读者, 并把这些读者引导到Web程序设计的世界中。某些读者可能具备一定的计算机知识和程序设计的概念, 但对Web技术却缺乏了解。那么本书可以作为一个进入Web应用程序开发世界的快速通道。本书内容细介绍程序设计的基础概念, 包括JavaScript语言的数据、数据类型、以及选择语句和循环语句等结构化程序设计的概念。在学习了JavaScript语言的基础知识之后, 本书将介绍JavaScript中的一个重要概念一一对象。JavaScript提供了很多内建对象, 如Date对象和S rng对象等, 这些内建对象为程序设计带来了很多好处,例如利用内建对象可以管理复杂的数据类型,并简化JavaScript应用程序的设计。本书还将介绍如何使用JavaScript操作浏览器提供的对象, 如form对象、window对象或其他的控件元素对象。使用这些知识, 就可以创建具有专业水准的Web应用, 并与用户进行交互。JavaScript入门经典(第3版)编写的代码亦是如此。本书介绍了一些常见的语法错误和逻辑错误,还介绍了如何发现这些错误, 以及如何使用Microsoft脚本调试器。本书还介绍了如何处理漏网之鱼的错误, 并确保这些错误不会对用户的最终体验造成不良的影响。DHTML和XML来使Web页面变得活泼生动起来等。最后, 本书还介绍了远程脚本和Ajax的概念, 这是一种相对较新的令人激动的Web开发技术。远程脚本和Ajax技术允许HTML页面中的JavaScript代码直接与服务器进行通信, 最有用的就是通过Ajax查询服务器上的数据库, 以获取相应信息而无须刷新整个页面。Google工具栏正是一个非常成功的Ajax技术案例。如果在浏览器中安装了Google工具栏, 只须在Google工具栏中输入搜索关键字, Google suggestion将立即提供相应的搜索建议, 这些建议正是通过查询Google搜索数据库获取的。的JavaScript原理进行实践和练习, 以巩固所学的知识。本书各章的结尾都包含了一些习题,在附录中则提供了这些习题的参考答案。将演示如何将JavaScript应用在实际问题中。如何使用本书可, 例如Windows中的记事本, 或者其他的文本编辑器即可。器。可以使用IE 6及以上版本的浏览器, 或者Firefox 1.5以上的浏览器进行测试。本书中的代码在以上两种浏览器中都进行了详细的测试。大部分现代浏览器都支持JavaScript, 本书第12章、第13章中部分实例的代码被指定兼容特定的浏览器, 以演示DHTML和DOM的脚本编程技术。除此之外,本书中的大部分代码都是跨浏览器兼容的,如果存在不能跨浏览器兼容的情况,本书将特别作出明确的说明。如何下载本书的示例代码码文件。本书使用的所有源代码都可以从本书合作站点www.wrox.com或www.tupwk.com.cn/downpage上下载。登录到站点www.wrox.com, 使用Search框或使用书名列表就可以找到本书, 接着单击本书细目页面上的Download Code链接, 就可以获得所有的源代码。
前言
在下载了代码后,只需用自己喜欢的解压缩软件对它进行解压缩即可。另外,也可以尽管我们已经尽了各种努力来保证文章或代码中不出现错误,但是错误总是难免的,要在网站上找到本书的勘误表, 可以登录www.wrox.com, 通过Search框或书名列表在http:/p2p.wrox.com上有许多不同的论坛,帮助读者阅读本书,在读者开发自己的(1)进入p2p.wrox.com, 单击Register链接。(2) 阅读其内容, 单击Agree按钮。提示:加入论坛后, 就可以发送新信息, 回应其他用户的贴子。可以随时在Web上阅读信息。
如果您在本书中找到了错误,例如拼写错误或代码错误,请告诉我们,我们将非常感激。通过勘误表,可以让其他读者节省时间、避免阅读和学习受挫,当然,这还有助于提供更高质量的书籍。请给wkservice@vip.163.com发电子邮件,我们就会检查您的信息,如果是正确的,就把它发送到该书的勘误表页面上,或在本书的后续版本中采用。查找本书, 然后在本书的细目页面上, 单击Book Errata链接。
P2P邮件列表是为作者和读者之间的讨论而建立的。读者可以在p2p.wrox.com上加入P2P论坛。该论坛是一个基于Web的系统, 用于传送与Wrox图书相关的信息和相关技术,与其他读者和技术用户交流。该论坛提供了订阅功能,当论坛上有新贴子时,会给您发送您选择的主题。Wrox作者、编辑和其他业界专家和读者都会在这个论坛上进行讨论。应用程序时,也可以从这个论坛中获益。要加入这个论坛,需执行下面的步骤:(3) 提供加入论坛所需的信息及愿意提供的可选信息, 单击Submit按钮。(4)然后就会收到一封电子邮件,其中的信息描述了如何验证账户,完成加入过程。不加入P2P也可以阅读论坛上的信息,但只有加入论坛后,才能发送自己的信息.如果希望某个论坛给自己发送新信息, 可以在论坛列表中单击该论坛对应的Subscribe tothis Forum图标。
第1章是本书的开篇, 在本章中将介绍什么是JavaScript、它有什么样的功能, 以及开本小节简要介绍什么是JavaScript、JavaScript的历史、它的工作原理以及使用JavaScript在购买本书之前, 你也许已经知道JavaScript是一种计算机语言。但是, 什么是计算在自然语言中,为了冲一杯速溶咖啡,可以采用如下的步骤,也可认为这是一种指令(1)将咖啡放入杯子中。(2)在烧水壶中装上水。(3)用烧水壶烧水。(4)如果水已经煮沸,则将水倒入咖啡杯,否则继续等待水煮沸。(5)品尝咖啡。在冲咖啡的步骤中,你从第一行(指令1)开始执行,接着执行第二行(指令2),然后是事实上, 计算机并不真正理解JavaScript。计算机需要某种解释程序来解释JavaScript对于编译型语言,在程序运行之前,程序代码首先被转换成机器码,然后才实际运行,此处, 应该消除一个普遍的误解:JavaScript并不是一种Java版的脚本语言。事实上,本书大部分实例的JavaScript代码都是包含在Web页面中, 并由浏览器加载执行的。实际上, JavaScript的第一个版本出现在Netscape Navigator 2浏览器中。最初, 人们发JavaScript程序所需要的工具。了解这些基础知识之后, 在本书其余章节中将逐步介绍如何使用JavaScript创建功能强大的Web站点。对于学习编程的人来说,动手实践就是最好的学习方式。从本章开始,本书将带领你使用JavaScript创建大量非常实用的程序。在这一章中, 我们将创建第一个JavaScript程序代码。此外, 在本书中, 我们将展示一个名为“在线小测试”的JavaScript Web应用程序的完整开发过程, 并通过一步一步地详细讲解来加深对如何创建Web应用程序的理解。在本章的末尾,我们将展示开发完成之后的“在线小测试”程序,并讨论一下该程序的设计思路。
1.1JavaScript简介
能实现哪些有用的功能。1.1.1什么是JavaScript机语言呢?简而言之,计算机语言就是一系列的指令,这些指令告诉计算机如何做事情。这些指令可以广泛地包含各种操作,包括显示文本信息、移动图片、或者请求用户输入信息等。通常,计算机自上而下地处理这些指令,这些指令也称为代码。简单地说,计算机阅读你编写的代码,计算出你想执行的操作,然后再执行这些操作。实际执行代码的过程被称为“运行代码”或“执行代码”。或代码:JavaScript入门经典(第3版)下一行, 直到结束。这个执行步骤与大多数计算机语言的执行非常类似, JavaScript代码的执行亦是如此。但是在某些情况下,你可能需要改变代码执行的顺序,或者跳过某些语句,在第3章中将对此做进一步的讲解。JavaScript是一种解释型语言, 而不是一种编译型语言。但解释型语言与编译型语言的含义是什么呢?代码并将其转换成计算机能理解的东西。因此, JavaScript是一种解释型语言。本质上, 计算机只能理解机器码,机器码实际上是由二进制数字组成的字符系列(即0,1的字符系列)。当浏览器遇到JavaScript时, 就将JavaScript代码传递给一个称之为“解释器”的程序, 解释器将JavaScript代码解释为计算机能够理解的机器码。这有点类似于请一个翻译将英语翻译为西班牙语。值得注意的是,解释和转换发生在代码运行时,并且每次运行都需要重复地进行解释和转换。解释型语言不仅包括JavaScript, VBScript也是一种解释型语言。而且这个转换过程只需要执行一次。用于将程序员编写的代码转换成机器码的程序,就是通常所说的“编译器”。实际运行的代码就是编译器所产生的机器码。VisualBasic和C++语言都是编译型语言。如果将编译过程与现实世界做一下类比,这类似于让一个翻译将一份英文文档翻译成一份西班牙语的文档。如果英文文档没有发生变化,那么就可以一直使用翻译好的西班牙语的文档,而无须重新翻译。除了名字中都带有Java这个词外, 二者并没有任何相同点。特别值得庆幸的是, 相比Java语言, JavaScript非常简单和易用。实际上, JavaScript比大多数程序设计语言都要简单易学,但是它同样具有令人惊叹的强大功能。
1.1.2JavaScript与Web创建Web页只需要一个文本编辑器就可以了, 例如Windows记事本。浏览页面则需要一个浏览器, 例如Firefox或者InternetExplorer, 这些浏览器中都内置了JavaScript的解释器。给JavaScript起的名字是Live Script。然而, 由于当时Java技术正是如日中天, Netscape公司决定将Live Script命名为JavaScript, 以便使JavaScript更加引人注目。随着JavaScript的发展, 微软公司决定在IE浏览器中加入微软品牌的JavaScript, 即JScript。随后,Netscape、微软和其他公司都在自己最新的浏览器中不断发布JavaScript的最新版本。尽管这些不同公司、不同版本的JavaScript在很多方面是一致的, 但是也存在一些差异, 在编写程序时如果不小心的话,这些差异可能会导致一定的问题。本书前面几章所创建的代码适用于大多数浏览器, 包括Firefox浏览器、InternetExplorer浏览器以及Netscape浏览器。本书后面的章节将用到一些在Firefox 1.5或以上版本的浏览器、或者InternetExplorer 6和
第1章Web与JavaScript概述
Inte met Explorer 7浏览器中特有的新特性。在本章的末尾, 将简要说明不同浏览器和不同版本的JavaScript可能导致的问题, 以及如何处理这类问题。浏览器直接打开,就像打开普通的文件(例如文本文件)一样。但是,当浏览因特网上的网站时,浏览器却并不是这样加载页面的。因特网是一个巨大的计算机互连网络。网站是因特网上特定计算机提供的一种专门的服务,提供网站访问服务的计算机就是众所周知的Web服务器。但是, 当你在浏览器中输入一个网址时, 浏览器怎么知道该向哪一个Web服务器请求本书的最后将介绍如何通过一个Step by Step方式的向导来建立你自己的Web服务器。另外, 在本书中, 我们将把InternetExplorer浏览器简称为IE。对于上面提到的其他脚本语言, 例如VBScript, 它可以实现与JavaScript完全相同的本书提供了大量包含JavaScript代码的网页实例, 它们可以存储在硬盘上, 并可以用Web服务器的最基本功能就是在硬盘上保存着大量的网页。通常, 当另一台计算机上的浏览器向Web服务器请求一个保存在该服务器上的网页时, Web服务器将从硬盘上载入该网页, 并且通过一个称为超文本传输协议(Hypertext Transfer Protocol, HTTP) 的专门的通信协议,将网页回传给发起请求的计算机。通常,我们将运行浏览器并发起请求的计算机称为客户机。客户机/服务器的关系有点像购物者与售货员的关系,当购物者进入商店并对售货员说:“请给我拿一件某样东西”。这时候,售货员将为购物者提供服务,找到购物者想要的东西并递给购物者。对于Web来说, 运行浏览器的客户机就像一个购物者, 而提供所请求网页服务的Web服务器就像一个售货员。页面呢?对于商店来说, 它有类似“某市中央大街45号”这样的地址, 但是Web服务器却没有这样的地址标志。Web服务器使用的是IP(Internet Protocol, 因特网协议) 地址, IP地址唯一标识了因特网上的主机。一个IP地址是由句点(“.”)分隔的4组数字组成,例如:127.0.0.1。如果你经常在网上冲浪, 你可能会对上述内容感到不解。因为Web站点通常具有www.somewebsite.com这样好记的名字,而不是IP地址。实际上,像www.somewebsite.com这样的域名,仅仅是实际IP地址的一个好记的名字而已,字符串形式的域名比起数字形式的IP地址来说更便于人们记忆。域名解析服务器可以将域名解析为实际的IP地址,一般情况下, 域名解析服务器已经由因特网服务提供商(ISP) 在因特网上建立了。Web服务器并不仅仅是一个能回传页面给客户机的简单机器, 实际上, Web服务器可以使用JavaScript来做一些简单的处理。本书后面将对此作相应的介绍。
1.1.3为什么选择JavaScript
脚本语言不仅只有JavaScript一种, 还有其他的脚本语言, 如VBScript和Perl语言等。为什么我们偏偏选择JavaScript而不是其他呢?选择JavaScript的主要原因在于JavaScript使用广泛, 并且非常实用。两大主流的浏览器, IE和Fir fox, 都支持JavaScript, 大部分其他的现代浏览器也都支持JavaScript。所以,当人们访问你的网站时, 客户端的浏览器中都已经安装了某一版本的JavaScript。当然, 人们也可以通过设置浏览器的选项来禁用JavaScript。JavaScript入门经典(第3版)功能, 但是只有Windows操作系统上的IE浏览器支持VBScript。而Perl语言则根本不在Web浏览器中使用。Windows系统中的自动化计算机管理任务; 在Adobe Acrobat的.pdf文件中也可以使用一个简化版的JavaScript, 用于控制页面的显示, 就像控制网页一样。也许对于哪一种脚本语言3JavaScript不仅能在网页中使用, 它还有很多方面的用途。例如, JavaScript还可用于更有用或者更强大这样的问题, 并没有唯一正确的答案。VBScript几乎能完成绝大部分JavaScript能完成的工作, 反之亦然。
1.1.4JavaScript的功能
通常, 我们使用JavaScript与用户进行交互、获取用户输入的信息, 以及对数据进行校验。例如,你可能会在页面上放置一个下拉列表作为菜单,并希望当用户在列表中选择一个项后, 将用户重定向到与该选项所对应的页面。然而, 下拉列表只是普通的HTML标记,无法完成这样的功能,这时候,要实现根据用户的选择来跳转页面的功能,就需要使用JavaScript脚本进行处理。表单(form) 通常用于获取用户输入的信息, 这是使用JavaScript与用户交互的典型场合。表单中的元素通常都是一些普通的HTML, 那么我们怎么才能实现对用户输入的数据进行检查呢?例如,在一个在线购物的网站中,有一个要求用户填写详细信用卡信息的表单,在成交之前,你就需要确认用户是否填入了这些详细信息。有时,还需要对输入数据的类型进行检查,例如,对于年龄,应该输入表示年龄的数值,而不是其他字符串。通过JavaScript脚本, 我们就能实现这些检查。时,将图片切换成另一幅图片,这是在网页中比较常见的一种特效。另外,也许你已经见使用JavaScript还可以实现各种各样的特殊效果。例如, 当用户的鼠标经过一个图片过在浏览器状态栏(通常位于浏览器窗口的底部)中显示滚动信息的特效,或者在页面上显示滚动信息的特效, 但它们是如何实现的呢?在本书中将用JavaScript展示这种特效的实现。当用户鼠标经过一个菜单项时,将该菜单下的子菜单展开,以提供一个列表供用户选择, 这也是由JavaScript驱动的一种比较常见的特效。特效仅仅是JavaScript功能的一方面, 更具有实用价值的是JavaScript小应用程序。例如:在一个当铺的网站上, 包含一个用JavaScript编写的典当计算器, 或者在一个关于财务计划的网站上使用JavaScript计算税务清单。只须发挥一下想象力, JavaScript就能为你创造出许多惊喜。
1.2创建JavaScript Web应用程序所需的工具
要为Web应用程序创建JavaScript代码, 仅需要一个简单的文本编辑器, 例如Windows记事本,或者某种提供了行号、查找和替换等功能的更高级的文本编辑器。也可以使用功能强大的专用HTML编辑器, 我们可以在HTML编辑器中编辑HTML的源文件, 并在其中加入相应的JavaScript代码。有许多非常优秀的软件工具是专门针对Web应用程序的开发而设计的, 例如Adobe公司的Dreamweaver 8就非常好用。但是, 本书将着重介绍JavaScript本身, 而不是某一特定的开发工具。在学习JavaScript基础知识的过程中, 手工
Web与JavaScript概述
编写代码往往比依赖于开发工具更有收获。在程序开发中,许多高级的内容和逻辑是开发工具本身不能解决的,亲自动手编写代码将有助于提高你对基础知识的理解。在深入掌握了JavaScript的知识后, 使用开发工具可以提高开发效率, 节省时间, 并使你有更多的时间和精力去关注那些高级和有价值的内容。浏览器用于浏览网页。如果你希望用户使用某种指定的浏览器来访问你的网站,则最好在这种浏览器环境下进行JavaScript开发。现在已经有几种不同版本的JavaScript, 且不同版本的浏览器所支持的JavaScript版本也不相同。虽然这些不同版本的JavaScript其核心是相同的, 但是各版本之间具有不同的语言扩展。本书中的所有实例都已经在Firefox 1.5和IE6、IE7浏览器中通过了调试。无论何处,如果出现了与这些浏览器不兼容的代码,本书都用文字对这些不兼容的代码的影响作了说明。如果你使用的是Windows系统, 则绝大部分情况下都已经安装了IE浏览器。如果未能安装,请访问如下网址以获取最新版本的IE浏览器:www.microsoft.com/windows/ie/default.msp x。好选择自定义安装, 这样可以选择安装哪些组件。特别值得安装的是Developer Tools组件,虽然它不是必须安装的,但对一个开发人员来说它是一个值得拥有的扩展工具。关于JavaScript的话题已经谈了不少, 下面我们来看一看如何将JavaScript加入到网页通常情况下, 当浏览器遇到标记。脚本标记将告诉浏览器, 在标记之间的代码块, 并不是用于显示的HTML元素, 而是需要浏览器进行处理的脚本代码。由标记包围的代码块, 称为脚本块。使用浏览器内建的JavaScript解释器来解释并运行脚本代码中的指令。虽然脚本代码中的指令有可能改变页面的显示方式,或者改变显示的内容,但是脚本自身的代码永远不会显示给用户。
Paragraph 1