当前位置: >>
网页设计与制作 第十章讲稿
《网页设计与制作教程》作者:孟显勇 北京理工大学出版社第十章 Javascript? ?? ??Javascript是由Netscape公司开发的基于对象脚 本语言,而不是面向对象的脚本语言。 基于对象是指Javascript使用已经存在的系统对 象进行程序设计,通过调用和设置对象的方法和 属性实现对页面对象的控制。 为保证扩展性Javascript也提供了用户自定义对 象的功能。J avascript可以被嵌入到HTML文档中,通过控制 页面内的文本、图像、视频等页面对象实现动态 效果。 JavaScript主要应用于客户端脚本程序,常用于 验证客户端输入数据和制作网页特效。10.1 JavaScript基础????Javascript是基于对象的脚本语言,对象 主要包含属性和方法两个基本元素。 属性就是对象具有的特征,例如文字的颜 色、大小、字体等。 方法就是对象能执行的操作,比如输出信 息到浏览器窗口就是一个对象方法。 Javascript中对象主要包括Javascript内 部对象、用户自定义对象和HTML页面内对 象。10.1.1 语法?JavaScript脚本语言与其它程序语言类似, 也拥有自己的基本数据类型、常量和变量、 表达式等。10.1.1 语法基本数据类型???几种常用的JavaScript基本数据类型: 数值型:包括整数和浮点数。整数包括正整数、0、 负整数,可以用十进制、八进制和十六进制表示。 八进制数以0开头表示,如“0123”表示八进制数 “123”。 十六进制数以0x开头表示,如“0xEF”表示十六 进制数“EF”。浮点数用于存储高精度的小数。如: “8.19”,“2.7e6”,“3”,“8e-10”。10.1.1 语法10.1.1 语法基本数据类 型??字符串型:是用双引号或单引号括起来的 任意长度的一串字符。 JavaScript中在引号里再嵌套引号时需要 前面加上转义字符斜杠“\”,其中\?表示单 引号、\”表示双引号、\n表示换行符、\r表 示回车等。10.1.1 语法???基本数据类型 逻辑型:表示逻辑值,逻辑型变量只有两 个值可选:true(真)和false(假)。 true和false属于JavaScript的保留字,它 们是“常数”。 空值:JavaScript中空值用null表示,表 示什么都没有。10.1.1 语法????常量和变量 常量 常量是指数值保持不变的量。 常量可以是一个数字,也可以是一串字符,常量 值可以为整型、实型、逻辑型、字符串型。 “null”是一个特殊的JavaScript常量,当变量未 定义,或者未赋值之前,它的值就是“null”, 另外,企图调用一个不存在的对象时也会返回 null值10.1.1 语法? ???变量 变量是指其值可以改变的量。 JavaScript脚本语言具有在没有事先定义(声明) 变量的情况下对变量直接使用的特点,并且可以 在变量中存储任何类型的值。 而像Java和C这样的程序语言,必须在使用变量 前对其进行定义(声明),同时变量只能存储定 义类型的值。 JavaScript用关键字var定义变量,或使用赋值 的形式定义变量。变量在程序的主要作用是存取 数据,即提供存放信息的容器。10.1.1 语法JavaScript中的变量命名需要注意以下几点: ? Javascript定义的变量只能包含字母、数 字和下划线 ? 并且只能以字母或下划线开头 ? 并且Javascript的变量名是区分大小写的。?不能使用JavaScript的保留字作为关键字, 例如,var、 int、double、true等。10.1.1 语法?如果变量名是由多个单词组成习惯上第一 个单词用小写,其它单词的第一个字母用 大写。如myVariable和 myAnotherVariable。在对变量命名时,最好使变量的名字与其 功能对应,这样定义便于阅读和管理代码。?10.1.2 运算符?运算符是用于各种运算的符号, JavaScript中常用的运算符包括赋值运算 符、算术运算符、比较运算符和逻辑运算 符。10.1.2 运算符? ??赋值运算符 赋值运算符是将一个值赋给另外一个变量, JavaScript赋值运算符主要包括:基本赋值运算 符“=”,复合赋值运算符:+=,-=,*=,/= 和%=。 例如,下面一段赋值代码: x=100; //将值100赋值给变量x a+=10; //是赋值表达式a=a+10的简写形式赋值运算符的结合性是从右到左,每个赋值表达 式都有一个值,即赋值运算符右边的值。?10.1.2 运算符?算术运算符 算术运算符的操作数和结果都是数值型值, JavaScript算术运算符分为双目运算符和单目运 算符。双目运算符包括:+、-、*、/、%(取模)、| (按位或)、&(按位与)等。 单目运算符包括:!(取反)、~(取补)、++ (自增1)、--(自减1)。??10.1.2 运算符???比较运算符 比较运算符又叫关系运算符,比较运算符 的操作数主要是字符串或数字。 比较运算符对参与运算的操作数进行比较, 得到逻辑型结果值,即true或false。 常用的比较运算符有:==(相等)、!= (不等)、&(小于)、&(大于)、& = (小于或等于)、& =(大于或等于)。10.1.2 运算符?逻辑运算符 逻辑运算符用于逻辑运算,运算对象和结果都是逻辑值, 常用的逻辑运算符如下: &&表示逻辑与运算,是双目运算符。运算规则为:仅当 两个参与运算的数都为true时,运算结果才为true,否则 结果为false。 ||表示逻辑或运算,是双目运算。运算规则为:只要参与 运算的数有一个是true时,运算结果就为true,否则结果 为false。 !表示逻辑非运算,是单目运算。运算规则为:结果是对 当前的操作数的值取反。???10.1.3 控制和循环语句??程序语言通过控制语句和循环语句对数据 和对象的进行复杂的控制,实现各种程序 功能。 JavaScript脚本语言提供了常用的的程序 控制语句和循环控制语句。10.1.3 控制和循环语句?If选择控制语句 Javascript中If条件语句是选择控制语句, 控制当某一条件满足时执行一个语句或一 个语句组,语句或语句组用“{}”括起 来,每个语句用分号结尾。10.1.3 控制和循环语句? ? ?根据选择条件的数量可以将if语句分成三类: 只有一种选择时的if语句结构: if(表述式) {语句组;} 有两种选择时的if语句结构: If(表达式) {语句组1;} else {语句组2;} 表示表达式成立执行语句组1,否则执行语句组2。?10.1.3 控制和循环语句? ?表示有两种以上的选择时的if语句结构: If(表达式1) {语句组1;} Else if(表达式2) {语句组2;} Else if(表达式3) {语句组3;} ﹒﹒﹒﹒﹒﹒ Else {语句组n;}?程序【例10-1】实现了一个条件选择语句,制作季度判断程序,首 先获取系统当前时间,提取时间中月份信息,并根据月份进行判断, 效果如图10-1所示。图10-1 if…else控制语句10.1.3 控制和循环语句?程序(ch10-1.html)代码如下: &html& &body& &script type=“text/javascript”& var d = new Date() var time = d.getMonth() if (time&=3) { document.write(“&b&这是第一季度&/b&”) } else if (time&3 && time&=6) { document.write(“&b&这是第二季度&/b&”) } else if (time&6 && time&=8) { document.write(“&b&这是第三季度&/b&”) } else { document.write(“&b&这是第四季度&/b&”) } &/script& &/body& &/html&10.1.3 控制和循环语句?While循环控制语句 Javascript循环控制语句是指在循环控制条件满足时,可 以控制程序块中的代码重复执行。循环语句主要有while 循环语句和do…while循环语句,结构分别是: While循环: while(控制条件) { 语句组; }??10.1.3 控制和循环语句?While循环运行规则:当执行while循环前先判断 控制条件是否满足,如果控制条件不满足,则循 环体内的语句组不会被执行,如果控制条件满足, 语句组会重复执行,直到控制条件不满足为止。do…while循环: do { 语句组; }while(控制条件)?10.1.3 控制和循环语句?do…while循环运行规则:首先执行循环体 内的语句组,然后对控制条件进行判断, 如果控制条件满足,继续执行循环体内语 句组,否则跳出循环,执行循环体后面的 语句。10.1.3 控制和循环语句? ?for循环语句Javascript还提供for循环语句实现循环控制功能, 功能与while循环类似,for循环便于计算循环执 行次数,for循环体定义的格式为: for(初始化表达式;循环控制条件;循环变量自增 或自减) { 语句组; }?10.1.3 控制和循环语句?For循环运算规则:执行for循环前先执行 初始化表达式,然后判断循环控制条件, 如果循环控制条件不满足,跳出循环体执 行循环体下面的语句,如果条件满足,执 行循环体,执行一次循环体后,循环变量 自增或自减,一次循环结束。然后判断循 环控制条件,进行下一次循环,直到控制 条件不满足为止。10.1.3 控制和循环语句?switch选择控制语句 Javascript中switch语句用于实现选择控制,功能与if选择语句类似,当有 多个条件时可以使用switch语句实现控制,switch语句的格式如下: switch(表达式) { case 值1: 语句组1; B case 值2: 语句组2; B ﹒﹒﹒﹒﹒﹒ default: 语句组n; B }?10.1.3 控制和循环语句?Switch控制语句执行规则:首先计算表达 式,如果表达式的值与值1相同,就执行语 句组1,如果表达式值与值2相同,就执行 语句组2,以此类推,当表达式值与上述值 都不相同时,执行语句组n。10.1.3 控制和循环语句?程序【例10-2】使用for循环控制输出信息,效果如图10-2所示,程序 (ch10-2.html)代码如下: &html& &head& &title&for循环示例&/title& &/head& &body& &p& &script type=“text/javascript”& for (i = 0; i &= 5; i++) { document.write(“Javascript祝大家学习快乐!”) document.write(“&br&”) } &/script& &/p& &/body& &/html&10.1.3 控制和循环语句? ? ?break和continue语句 Javascript程序设计过程中有时需要终止循环体的循环,其中break和 continue语句就可以实现终止循环的功能。 break语句与continue语句有明显的区别,break语句是终止整个循环,跳 出循环体执行循环体下一个语句; continue语句是终止本次循环,继续执行循环体的下一次循环。嵌入break 语句的循环代码段如下: i=1; while(i&100){ if(i==10) else {语句组;} i++; } 上述代码段中,如果执行到i=10时,执行break语句,则整个while循环结束。??10.1.3 控制和循环语句?continue语句是结束本次循环,但会继续进行下一次的循环,嵌入 continue语句的循环代码如下: i=1; while(i&100){ if(i==10) {i++;} else {语句组;} i++; } 上述代码段中,当i=10时此次循环结束,继续下一次循环,一直循 环到i=100为止。??10.2 Javascript函数???Javascript函数包括自定义函数和内部函数(也 叫内置函数),函数是进行模块化程序设计的基 础,是完成特定功能的程序块。 Javascript脚本语言提供了大量的内部函数,设 计开发人员可以直接使用这些内部函数设计网页 脚本程序。 Javascript也提供了自定义函数的开发方式,根 据功能要求自定义函数。Javascript语言是基于 对象的脚本语言,其中函数都作为一个对象被维 护、运行和调用。10.2.1 内部函数?Javascript提供了大量的内部函数供开发 人员使用,本节主要介绍网页设计过程中 常用的Javascript内部函数。10.2.1 内部函数常规函数 ? Javascript常规函数主要有: ? alert函数功能是弹出一个提示信息对话框,对话框上只 包含一个确定按钮; ? conform函数的功能是弹出一个确认对话框,包含确定按 钮和取消按钮; ? prompt函数的功能是弹出一个输入信息对话框,可以获 取客户输入数据; ? eval函数的功能是对一个表达式进行计算并得到运算结果; ? parseInt函数的功能是将字符串转换成为数值。下面一段 代码描述了常规函数的使用方法。10.2.1 内部函数?&script language=&javascript&& alert(&这是一个提示对话框!&); prompt(&这是一个输入对话框,可以输入数据。&,& 在这里输入 你想输入的数据!&); confirm(&这是一个确定对话框!&); document.write(&eval函数可以为你计算表达式的值: &+eval(8*8+16)+&&br&&); document.write(&parse函数可以将字符串变成整数值:&) document.write(eval(parseInt(&12&)+parseInt(&18&))); &/script&10.2.1 内部函数时间和日期函数 ? Javascript常用的时间和日期函数主要有两类, 一类是获取时间和日期的函数,此类函数以get开 头; ? 另外一类是设置时间和日期函数,此类函数以set 开头。 ? 其中获取日期和时间函数主要有:getDate、 getDay、getHours、getMinutes、getMonth、 getSeconds、getTime。 ? 设置时间和日期的函数名与获取函数对应,例如 getDate函数就对应着setDate函数。10.2.1 内部函数?程序【例10-3】使用时间日期函数输出系统时间和日期,程序(ch10-3.html)代码如下: &script language=&javascript&& var date, str = &今天是: &; date = new Date(); str += date.getYear()+&年&; str += (date.getMonth() + 1) + &月&; // “月”返回值为0~11 str += date.getDate() + &日&; // “日”的返回值为1~31 day = date.getDay(); // “星期”返回值为0~6 switch(day) { case 0: str +=& 星期日&; case 1: str +=& 星期一&; case 2: str +=& 星期二&; case 3: str +=& 星期三&; case 4: str +=& 星期四&; case 5: str +=& 星期五&; default: str +=& 星期六&; } str+=& 当前北京时间是:& str+=date.getHours()+&点&; str+=date.getMinutes()+&分&; str+=date.getSeconds()+&秒。&; document.write(str); &/script&10.2.1 内部函数数学函数 ? Javascript提供了常用数学函数,例如,乘方、 三角和对数函数等。 ? Javascript数学函数来源于Math对象的属性和方 法,Math对象的属性表示的是一些常用的数学常 量,Math对象的方法是常用的数学函数。 ? 其中常用的数学常量及其含义请见表10-1所示 ? 常用的数学函数及其功能请见表10-2所示。表10-1 Math对象的属性值Math对象属性名 Math.e Math.LN2 Math.LN10 Math.LOG2E Math.LOG10E Math.PI Math.SQRT1_2 含义 表示自然对数的底,常量2.718 2的自然对数值 10的自然对数值 底数为2,e的对数 以10为底,e的对数 圆周率π 的值 1/2的平方根表10-2 Math对象的函数函数名 Math.max( ) Math.min( ) Math.pow( ) Math.random( ) 功能 求两个数的最大值 求两个数的最小值 求乘方 求0~1的随机数 函数名 Math.abs( ) 功能 求绝对值Math.acos( ) 求反余弦值 Math.asin( ) 求反正弦值 Math.atan( ) 求反正切值Math.round( ) 四舍五入Math.sin( ) Math.sqrt( ) Math.cos( ) 求正弦值 求平方根 求余弦值Math.ceil( ) 求大于或等于此数的最小整 数Math.exp( ) Math.floor( ) Math.log( ) 求e的指数次方 求小于或等于此数的最大整 数 求一个数的自然对数值。10.2.1 内部函数?字符串函数 Javascript中的字符串函数主要实现对字 符串的处理,包括对文字大小和颜色的修 改,获取字符串的长度和对字符串进行查 找等,主要字符串处理函数如表10-3所示。表10-3 字符串处理函数函数名 anchor big blink bold 功能 将字符串定义为一个锚点 字符串字体变为大号字体 实现字符串闪烁功能 使字符串字体加粗charAtfixed fontcolor fontsize indexOf返回指定位置的字符,起始值为0字符串字体设置为固定宽度字体 设置字符串字体颜色 设置字符串字体大小 从被查找字符串左边开始,返回找到子串的位置值,左起位置值为0italicslastIndexOf length link small设置字符串字体为斜体从被查找字符串右边开始,返回找到子串的位置值,左起位置值为0 获取字符串长度值 将字符串设置为超级链接 字符串以小号字体显示strikesub substring sup toLowerCase在字符串文字上添加删除线将字符串设置为下标 返回字符串中一段字符 将字符串设置为上标 将字符串转换为小写。10.2.1 内部函数?程序【例10-4】使用常用字符串处理函数实现基本的字符串处理功能,程序(ch10-4.html)代 码如下: &SCRIPT language=&JavaScript&& //定义字符串格式 var strTest=&欢迎您学习Javascript!&; strTest=strTest.fontcolor(&red&); strTest=strTest.italics(); strTest=strTest.fontsize(&18&) document.write(strTest+&&br&&); //查找字符串 var strText = &各位同学大家好,希望大家能学会Javascript!&; var strKeyword = strText.indexOf(&学会&); document.write(&恭喜您,搜索的位置在:&+strKeyword+&&br&&); //定义一个锚点 var strAnchor = &这是锚点& ; strAnchor = strAnchor.anchor(&AnchorName&); document.write(strAnchor+&&br&&); //定义一个超级链接 var strCluster = &这是超级链接&; strCluster = strCluster.link(&&); document.write(strCluster+&&br&&); &/SCRIPT&?10.2.1 内部函数??数组函数 Javascript的数组函数实际上是Javascript语言 中Array对象的方法,创建数组可以使用new运 算符创建一个Array对象,通过Array对象的方法 实现数组元素的控制和操作。 Javascript数组的长度是可以扩展的,也就是 Javascript提供了动态数组的功能,根据程序设 计的需要来扩展数组的长度。引用数组的方式与 其它程序设计语言一样,即通过数组的下标来引 用,第一个数组元素的下标为[0]。10.2.1 内部函数?Javascript定义数组的格式有两种:第一种格式定义一个数组对象:var 数组 变量名称 = new Array(); 第二种格式直接定义数组变量并赋值:var arrayName = Array(&how&,&are&,&you&);??10.2.1 内部函数?访问数组对象的属性和方法格式为:数组 变量名.属性(或方法) 数组对象的属性length的使用格式为:数 组变量名.length,其返回值为数组的长度, 即数组元素的个数。 通过给数组的length属性赋值可以修改数 组的长度。??10.2.1 内部函数?数组对象的常用方法请参考表10-4所示,下面代码段使 用数组的sort方法对数据进行排序,输出结果为: “f,e,d,c,b,a”,代码段如下: &script& var array1=new Array(“c”,“a”,“b”); var array2=new Array(“e”,“d”,“f”); array1.sort(); array2.sort(); var array3 = array1.concat(array2); array3.reverse(); document.write( array3 ); &/script&?表10-4主要数组函数函数名 concat( ) sort( ) toString() reverse( ) join( ) pop( ) 功能 连接两个或多个数组 对数组的元素进行排序 将数组转换为字符串 倒置数组中元素的顺序 将数组中的所有元素放入一个字符串 返回数组的最后一个元素并删除shift( )splice( )返回数组的第一个元素并删除插入、删除或替换数组的元素10.2.2 自定义函数?Javascript程序设计过程中,开发设计人员可以 根据程序设计需要自定义函数,自定义函数使用 function关键字,其定义格式主要有四种方式:function functionName1(参数1,参数 2,…){函数体;} var functionName2=function(参数1,参 数2,…){函数体;}??10.2.2 自定义函数??var functionName4=function functionName 3 (参数1,参数 2,…){函数体;} var functionName5=new function(参数1,参数2,…,函数体;)10.2.2 自定义函数?程序【例10-5】自定义了一个Javascript函数,程序(ch10-5.html)代码 如下: &html& &head& &script type=&text/javascript&& function popMessage() { alert(&欢迎大家学习Javascript!&) } &/script& &/head& &body& &form& &input type=&button& value=&点击,显示提示信息& onclick=&popMessage()& & &/form& &/body& &/html&?10.3 内部对象?Javascript语言是基于对象的语言,而不 是面向对象的语言,主要是由于 Javascript语言没有提供更多的像抽象、 继承和重载等面向对象语言的一些基本功 能和方法,而是主要通过提供大量的系统 对象,使程序设计人员基于这些系统对象 设计和开发系统,所以将其称为基于对象 的语言。10.3 内部对象????Javascript对象由属性(properties)和方法 (methods)两个基本元素构成。 对象的属性引用通过点运算符“﹒”,格式为: “ObjectName. properties”,即“对象﹒属 性”, 例如,document.form.name.value表示获取 表单上控件的值; 对象的方法的引用也是通过运算符“﹒”,格式为: “ObjectName.methods()”,即“对象﹒ 方法()”。10.3 内部对象? ? ???Javascript引用对象的属性和方法有两种情况: 第一种是静态对象,引用静态对象时不需要为对 象先创建实例; 第二种是动态对象,引用动态对象时需要先创建 一个该对象的实例,然后才能引用该实例的属性 和方法,即该对象动态创建的。 例如,数学运算对象Math就属于静态对象,日期 和事件对象Date就是动态对象。 Javascript提供了大量的内部对象以及对象的方 法和属性,Javascript内部对象层次结构如图 10-3所示。图10-3 Javascript内部对象结构windowframenavigato r linkdocumen t formhistorylocationanchorbodyelementtextpasswor dsubmitcheckbo xbutton10.3.1 窗口对象Window?窗口对象Window主要实现对网页窗口的操 作和控制,常用Windows对象的方法如表 10-5所示。表10-5 常用Window对象方法方法 功能 方法 功能open( )moveTo( ) promt( )创建一个新窗口移动窗口到(x,y) 弹出提示对话框alert( )back( ) forward( ) home( ) stop( ) print( ) close( )显示提示信息窗口后退页面 前进页面 返回主页 终止加载页面 打印页面 关闭窗口setTimeout( ) 定时器设置 clearTimeout( 取消定时器 ) setInterval( ) 设定一个时间间隔 clearInterval 取消时间间隔设定 ( )10.3.1 窗口对象?Window窗口对象Window的方法open是打开 一个新的窗口,其调用格式为:open(&URL &, &窗口名称&, &窗口属性&); 其中,&URL &表示新窗口页面的URL(网页地 址); &窗口名称&定义的是新窗口的名称,窗口名称与 “&a href=”...“ target=”...“&”里的“target” 属性功能相同; &窗口属性&定义新窗口的外观样式的属性,可以 定义多个属性,属性间用逗号隔开。? ? ??10.3.1 窗口对象??Window下面代码段使用Window对象open方 法创建一个新窗口,open方法的参数及其含义如 表10-6所示,open方法创建新窗口代码如下: window.open(&new.html&, &WindowName&, &width=400,height=100, menubar= yes, toolbar=yes, location=yes, status=yes, scrollbars=yes, resizable=yes&)表10-6 Window对象open方法主要 参数Open参数 top left width height menubar 参数含义 新窗口与屏幕的上边距 新窗口与屏幕的左边距 新窗口的宽度 新窗口的高度 新窗口是否显示菜单栏,yes显示, no不显示toolbarlocation scrollbars新窗口是否显示工具栏,yes显示, no不显示新窗口是否显示地址栏,yes显示, no不显示 新窗口是否显示滚动条,yes有, no不显示statusresizable新窗口是否显示状态栏,yes显示, no不显示新窗口尺寸是否可调,yes可调, no不可调10.3.2Javascript文档对象??文档对象document代表的是整个的HTML页面, 使用文档对象可以访问和控制页面中的所有元素。 文档对象是显示于当前窗口中的文档,从 Javascript对象结构图中可以知道document对 象是window对象的一个属性,用 window.document格式来调用一个文档对象, 当表示当前窗口时省略window,只写 document。 Javascript的主要文档对象及其含义如表10-7所 示,Javascript文档对象主要属性及其含义请见 表10-8所示,Javascript文档对象包含的主要方 法如表10-9所示。表10-7 主要文档对象文档对象 all anchors links forms 含义 代表页面中所有对象 代表页面中的所有锚对象 代表页面中所有超级链接对象 代表页面中的所有表单对象images代表页面中的所有图像对象表10-8 文档对象document主要属性文档属性 body title URL referrer domain fileCreatedDate fileSize 含义 对文档内body标签的内容进行控制 对文档的标题内容进行控制 对文档的URL的内容进行控制 获取当前文档前一个页面的URL 获取服务器域名 返回文件建立日期 获取文档大小cookiebgColor linkColor alinkColor vlinkColor对文档的所有cookies进行控制对文档背景色进行控制 对文档内超级链接的颜色进行控制 对文档内激活的超级链接颜色进行控制 对文档内已经访问过的超级链接的颜色进行控制表10-9 文档对象方法文档对象方法 getElementsByName() getElementById() getElementsByTagName() write() writeln() 含义 通过页面对象的名字来控制页面对象 通过页面对象的ID值来控制页面对象 通过页面对象的标签名来控制页面对象 输出字符串到文档 输出字符串到文档,输出文字后自动换行open()close()在窗口里打开新文档关闭文档输出,并显示文档内容10.3.2Javascript文档对象? ?程序【例10-6】列举一些常用文档对象方法和属性的使用方法,程序(ch10-6.html)代码如下: &html& &head& &title&文档对象&/title& &/head& &body & &script& document.bgColor=&FF99CC&; document.write(&页面背景色RGB值:&+document.bgColor+&&br /&&); document.body.text= &blue&; document.write(&文字颜色RGB值:&+document.body.text+&&br /&&); document.write(&文件创建日期是:&+document.fileCreatedDate+&&br /&&); document.write(&文档大小是:&+document.fileSize+&Byte&); &/script& &form name=&form_1&& &input name=&btn_1& type=&button& value=&添加标签文字& onClick=&document.getElementById('text_1').innerHTML = '欢迎您!';&& &input name=&btn_2& type=&button& value=&修改标签文字颜色和字体& onClick=&document.getElementById('text_1').style.color ='yellow'; document.getElementById('text_1').style.fontSize =&& &/form& &div id=&text_1&&&&/div& &/body& &/html&10.3.3 历史对象history??历史对象history保存的是历史浏览列表,可以对 历史访问页面进行操作,实现在历史页面中跳转 的功能。 History对象是Window对象的一个属性,可通过 window.history属性来访问。如果引用的是当前 窗口的History对象,可以省略window。 History对象的属性length获取历史页面的数量, history对象的主要方法有back表示后退到上一 个页面,forward表示前进到下一个页面,方法 go是跳到指定的一个页面。?10.3.3 历史对象history? ?History对象的back方法调用格式: history.back(),功能为后退到浏览历史 列表中的前一个页面,功能与history.go(1)相同。History对象的forward方法调用格式: history.forward(),功能为前进到浏览历 史列表中的下一个页面,功能与 history.go(1)相同。?10.3.3 历史对象history? ?History对象的go方法调用格式: history. go (number),功能为跳转到浏 览历史列表中的指定页面,其中number参 数表示要访问的页面在浏览历史列表中的 相对位置,其中-1代表前一个,0代表当前, 1代表后一个等。10.3.3 历史对象history?程序【例10-7】实现了history对象的功能,实现在多个页面之间的跳转,程序 (ch10-7.html)代码如下: &/head& &body& &script type=&text/javascript&& document.write( &历史数量:&+history.length ); &/script& &br& &a href=&third.html&&链接到第三个页面&/a& &form& &input type=&button& value=&&-后退& onclick=&history.back()& /& &input type=&button& value=&前进-&& onclick=&history.forward()& /&&br& &input type=&button& value=&go方法实现后退& onclick=&history.go(-1)& /& &input type=&button& value=&go方法实现前进& onclick=&history.go(1)& /& &br& &input type=&button& value=&跳转& onclick=&history.go(-2)& /& &input type=&button& value=&刷新当前页& onclick=&history.go(0)& /& &/form& &/body& &/html&?10.4 表单校验?Javascript常用于客户端数据的校验,就 是在将表单输入的数据传输到服务器之前 首先对数据的有效性进行校验。10.4.1 客户输入数据的有效性校验????Javascript的客户数据校验功能,既可以保证数 据的有效性,又可以防止无效数据传递到服务器, 浪费服务器更多资源和网络带宽。 程序【例10-8】实现表单数据校验的功能 首先,对输入的用户名和密码是否为空进行校验, 如果为空提示信息。 其次,对用户E-mail地址的字符进行校验,如果 含有非法字符提示错误信息,最后,判断E-mail 地址是否含有“@”,“.”两个关键字符,如果没 有提示出错信息。10.4.1 客户输入数据的有效性校验?程序(ch10-8.html)代码如下: &html& &body& &script language =&JavaScript&& function formCheck() { var flag = var charSet = &abcdefghijklmnopqrstuvwxyz_-.@&; var rForm.userMail. rForm.userName.value==&&) {alert(&用户名不能为空!&); } if(checkChar==&&) {alert(&邮件名不能为空!&); } for (var i=0; i & checkChar. i++) { var subChar = checkChar.charAt(i).toLowerCase(); if (charSet.indexOf(subChar) != -1) alert(&E-mail中包含非法字符: & + subChar); flag = } if(checkChar.indexOf(&@&)== -1||checkChar.indexOf(&.&)== -1) flag= if(flag){ alert(&恭喜您,您的电子邮件是有效!&); } else { alert(&对不起,您的电子邮件是无效!&); } } &/script& &form name=&inforForm& method=&post& onSubmit=&return formCheck()&& &p& &label&用户名: &/label& &input type=text name=userName& &/p& &p& &label&E-MAIL: &/label&&input type=text name=userMail& &/p& &p& &input type=submit value=&提交信息& /& &/p& &/form& &/body& &/html&10.5 事件响应?Windows操作系统通过消息处理机制来实 现人机交互,当点击键盘或鼠标时会触发 相应的键盘或鼠标事件,操作系统接收到 相应事件后将其交给相应的应用程序处理。10.5.1 事件处理的基本概念???Javascript将浏览器为了响应某个事件而 进行的处理过程,叫做事件处理。 浏览器接收到键盘或鼠标等事件时,调用 相应的事件处理函数,完成对事件的处理, 这样就实现了人机的信息交互。 Javascript事件主要有窗口事件、鼠标事 件、键盘事件和表单事件等。10.5.1 事件处理的基本概念Javascript处理事件的格式,主要有以下几种:? ?标签内添加事件处理在标签中添加事件的格式为: &标签 事件1=&事件处理程序1&, 事件2=&事 件处理程序2& ,…& 例如下列代码段: &body onload=&alert('欢迎您光临本站! ')& onunload=&alert('谢谢浏览!')&&?10.5.1 事件处理的基本概念?上述代码段在&BODY&标签里添加事件处理程序, onload事件是指加载页面时触发的事件,onunload事件 是指退出页面时触发的事件,当两事件触发时自动调用 alert函数显示提示信息。?指定对象的事件处理为特定对象添加事件的格式为: &script language=&JavaScript& for=&Javascript对象& event=&事件&& 事件处理代码; &/script&?10.5.1 事件处理的基本概念?例如下列代码段:&script language=&JavaScript& for=&window& event=&onload&& alert('欢迎您光临本站!'); &/script&?10.5.1 事件处理的基本概念?上述代码段通过for属性指向对象Window,当对 象Window触发onload事件触时调用该事件处理 过程。 调用function函数 定义相应的事件处理函数的格式:Function 函 数名(函数参数表){函数体;}当页面对象触发某个事件时调用函数的格式: Javascript对象.事件 = 事件处理程序;??10.5.1 事件处理的基本概念?例如,下面的代码定义了一个processFun 函数,当widow对象触发了onload事件时, 调用事件处理程序processFun。function processFun() { alert('欢迎您光临本站!');} 页面调用代码为:window.onload = processF?10.5.2 JavaScript事件处理应用??Javascript的窗口事件主要是指对窗口操 作时产生的事件,鼠标事件是点击鼠标时 产生的事件,键盘事件是点击键盘时触发 的事件,表单事件是对表单对象操作时产 生的事件。 常用Javascript事件及其含义请见表1010所示。表10-10 Javascript事件事件 onclick onDblClick onMouseDown 含义 单击鼠标 双击鼠标 按下鼠标按钮 事件 onLoad onUnload onMove 含义 加载当前页面 离开当前页面 窗口移动onMouseUponMouseOver弹起鼠标按钮鼠标指向对象onResizeonScroll窗口改变大小窗口滚动滚动条onMouseMoveonKeyPress onKeyDown onKeyUp onError鼠标移动onStop页面停止加载或下载表单提交 表单上控件失去焦点 表单控件内容发生改 变 表单控件获取焦点键盘上某个指定的键按 onSubmit 下 键盘上有键被按下 键盘上有键被弹起 页面出错 onBlur onChange onFocus10.5.2 JavaScript事件处理应用?鼠标单击事件应用 当鼠标单击时触发onclick事件,程序【例10-9】实现Javascript脚 本代码响应onclick事件,显示信息提示对话框,执行效果如图10-4 所示,程序(ch10-9.html)代码如下: &html& &head& &title&单击事件&/title& &/head& &body& &Form& &Input type=“button” value=“点击按钮” onClick=“alert(?欢迎 学习Javascript!’)”& &/Form& &/body& &/html&?图10-4 鼠标事件10.5.2 JavaScript事件处理应用?&html& &head& &script type=“text/javascript”& function mouseOver() { document.imgOut.src =“images/Garden.jpg” } function mouseOut() { document.imgOut.src =“images/flower.jpg” } &/script& &/head& &body& &img bordercolor=“blue” border=“3” height=“180” width=“180” src=“images/flower.jpg” name=“imgOut” onmouseOver=“mouseOver()” onmouseOut=“mouseOut()” /& &/body& &/html&10.5.3 出错处理Javascript程序执行过程中出现错误时触发 onerror事件,浏览器将相关错误信息发给 错误处理函数,错误处理函数的参数表依 次获得数据包括: ? 第一个参数获得错误消息内容 ? 第二个参数获得发生错误的页面URL ? 第三个参数获得发生错误的代码行。10.5.3 出错处理??程序【例10-11】实现捕捉页面错误事件并将具 体错误信息显示出来,程序中设计一个错误处理 函数errorMessage,其三个参数依次取名为 message,url,line(函数参数名称可以自己定 义)。 程序模拟页面指定对象不能找到时发生的错误, 即当点击页面按钮时触发onclick事件,但事件处 理函数order不存在,因此,发生不能找到对象 的错误,触发Window对象的onerror事件,显 示提示信息,页面效果如图10-7所示。图10-5 触发onmouseover事件10.5.3 出错处理? ?程序(ch10-11.html)代码如下: &html& &head& &script type=“text/javascript”& window.onerror=errorM function errorMessage(message,url,line) { var messageOut=“”; messageOut=“页面执行出现错误!\n\n”; messageOut+=“错误类型: ” + message + “\n”; messageOut+=“错误页面: ” + url + “\n”; messageOut+=“错误位于第: ” + line + “行。\n”; alert(messageOut); } &/script& &/head& &body& &input type=“button” value=“提交信息” onclick=“order()” /& &/body& &/html&10.6 JavaScript应用?使用Javascript不仅可以对客户端的数据 进行校验,还可以制作一些网页动态的特 效。Javascript语言与HTML语言中的层结 合可以设计出网页多种动态的特效。10.6.1 循环显示图片动画??使用Dreamweaver可以设计Javascript代码, 点击菜单栏的【文件】→【新建】,弹出【文档 新建】对话框,选择【类别】基本页面,选择 【基本页面】→【Javascript】,创建 Javascript文件。 Dreamweaver可以创建一个单独存放 Javascript代码的文件,文件扩展名为.Js。需要 调用.js文件的页面,将.js文件引用到程序代码中 即可,引用格式为:&script language=“javascript” src=“include.js”&&/script&。10.6.1 循环显示图片动画?程序【例10-12】使用Javascript设计了 一个循环显示图片的页面动画,此类动画 常用于广告宣传,在各大门户网站经常看 到。页面对四张图像循环显示,将四张图 像的路径信息存储于数组的四个元素中, 通过定时器实现四张图像循环显示。10.6.1 循环显示图片动画? ?程序(ch10-12.html)代码如下: &html& &head& &title&循环顺序显示图片&/title& &script language=“javascript” src=“include.js”&&/script& &/head& &body onLoad=“changeImage(?initialImage?)”& &img name=“initialImage” src=“flower.jpg” width=180 height=180& &/body& &/html& 使用Dreamweaver创建程序【例10-12】的Javascript文件,新建一个Javascript文件(include.js)代码如下: var interval=1000; var imageNumber=0; imageArray=new Array(); imageArray[imageNumber++]=new addImage(“images/flower.jpg”); imageArray[imageNumber++]=new addImage(“images/green.jpg”); imageArray[imageNumber++]=new addImage(“images/Garden.jpg”); imageArray[imageNumber++]=new addImage(“images/blue.jpg”); var allImages=imageArray. function addImage(imagePath){ this.imageMember=new Image(); this.imageMember.src=imageP } function getNewImage(){ imageNumber=(imageNumber+1)%allI var new_image=imageArray[imageNumber].imageMember. return(new_image); } function changeImage(iniImg){ var nextImage=getNewImage(); document[iniImg].src=nextI var reCall=“changeImage(?”+iniImg+“?)”; setTimeout(reCall,interval); }本章小结?本章主要讲解了Javascript脚本语言的基本知识, 需要重点掌握Javascript基本数据类型和控制语 句的基本知识;掌握Javascript的内部函数的功 能和基本用法,并熟悉自定义函数的特点和基本 设计、使用方法;掌握Javascript对象的概念, 并掌握Javascript对象的属性和方法的含义,并 熟悉常用方法和属性的功能和使用方法;掌握 Javascript事件响应机制,通过常用的事件处理 程序来了解事件处理的过程;通过Javascript具 体应用实例了解Javascript在网页设计的功能和 所处地位。思考与练习1. 2. 3.4.5.请简述Javascript常用的数据类型,并分别举例 说明。 请简述Javascript常用的算术运算符、关系运算 符和逻辑运算符。 请简述Javascript常用的条件控制语句和循环控 制语句的功能和语法结构。请简述Javascript内 部函数和自定义函数的区别,并举例说出六个常 用内部函数的功能。 请简述Javascript对象的方法和属性的含义,并 举例说明属性和方法引用的格式。 请简述Javascript的事件处理相应机制,并举例 说明常用事件处理的方法。实例1.请制作一个六张图像循环显示的 Javascript动画效果,要求将Javascript 代码放入单独的include.js文件中,显示 动画的页面文件(case10.html)通过引 用include.js文件实现动画效果。
更多搜索:
All rights reserved Powered by
文档资料库内容来自网络,如有侵犯请联系***。