之所以说它是一门基于对象的语言,主要是因为它没有提供象抽象、继承、重载等有关面向对象语言的许多功能。而是把其它语言所创建的复杂对象统一起来,从而形成一个非常强大的对象系统。 虽然JavaScript语言是一门基于对象的,但它还是具有一些面向对象的基本特征。它可以根据需要创建自己的对象,从而进一步扩大JavaScript的应用范围,增强编写功能强大的Web文档。
一、对象的基础知识
1、对象的基本结构 JavaScript中的对象是由属性(properties)和方法(methods)两个基本的元素的构成的。 属性是对象在实施其所需要行为的过程中,实现信息的装载单位,从而与变量相关联; 方法是指对象能够按照设计者的意图而被执行,从而与特定的函数相联。
2、引用对象的途径 一个对象要真正地被使用,可采用以下三种方式获得:
1〉引用JavaScript内部对象; 2〉由浏览器环境中提供; 3〉创建新对象。
这就是说一个对象在被引用之前,这个对象必须存在,否则引用将毫无意义,而出现错误信息。
从上面中我们可以看出JavaScript引用对象可通过三种方式获取。要么创建新的对象,要么利用现存的对象。
3、有关对象操作语句
JavaScript不是一纯面向对象的语言,它设有提供面向对象语言的许多功能,因此JavaScript设计者之所以把它你“基于对象”而不是面向对象的语言,在JavaScript中提供了几个用于操作对象的语句和关键字及运算符。
(1) For...in语句 格式如下: For(对象属性名 in 已知对象名) 说明: 该语句的功能是用于对已知对象的所有属性进行操作的控制循环。它是将一个已知对象的所有属性反复置给一个变量;而不是使用计数器来实现的。 该语句的优点就是无需知道对象中属性的个数即可进行操作。
例:下列函数是显示数组中的内容: Function showData(object) for (var X=0; X<30;X++) document.write(object[i]); 该函数是通过数组下标顺序值,来访问每个对象的属性,使用这种方式首先必须知道数组的下标值,否则若超出范围,则就会发生错误。
而使For...in语句,则根本不需要知道对象属性的个数,见下: Function showData(object) for(var prop in object) document.write(object[prop]); 使用该函数时,在循环体中,For自动将的属性取出来,直到最后为此。
(2) with语句
使用该语句的意思是:在该语句体内,任何对变量的引用被认为是这个对象的属性,以节省一些代码。 with object{ ...... }
所有在with语句后的花括号中的语句,都是在后面object对象的作用域的。
(3) this关键字
this是对当前的引用,在JavaScript由于对象的引用是多层次,多方位的,往往一个对象的引用又需要对另一个对象的引用,而另一个对象有可能又要引用另一个对象,这样有可能造成混乱,最后自己已不知道现在引用的那一个对象,为此JavaScript提供了一个用于将对象指定当前对象的语句this。
(4) New运算符
虽然在JavaScript中对象的功能已经是非常强大的了。但更强大的是设计人员可以按照需求来创建自己的对象,以满足某一特定的要求。使用New运算符可以创建一个新的对象。其创建对象使用如下格式: Newobject = new Object(Parameters table); 其中Newobject创建的新对象:object是已经存在的对象; parameters table参数表;new是JavaScript中的命令语句。
如创建一个日期新对象 newData=New Data() birthday=New Data (December 12.1998) 之后就可使NewData、birthday作为一个新的日期对象了。 4、对象属性的引用
对象属性的引用可由下列三种方式之一实现:
(1)使用点(.)运算符
university.Name=“云南省” university.city=“昆明市” university.Date="1999" 其中university是一个已经存在的对象,Name、City、Date是它的三个属性,并通过操作对其赋值。
(2)通过对象的下标实现引用
university[0]=“云南” university[1]=“昆明市” university[2]="1999" 通过数组形式的访问属性,可以使用循环操作获取其值。 function showunievsity(object) for (var j=0;j<2; j++) document.write(object[j]) 若采用For...in则可以不知其属性的个数后就可以实现: Function showmy(object) for (var prop in this) docament.write(this[prop]); (3)通过字符串的形式实现
university["Name"]=“云南” university["City"]=“昆明市” university["Date"]="1999"
5、对象的方法的引用
在JavaScript中对象方法的引用是非常简单的。 ObjectName.methods()
如引用university对象中的showmy()方法,则可使用: document.write (university.showmy()) 或:document.write(university)
如引用math内部对象中cos()的方法 则: with(math) document.write(cos(35)); document.write(cos(80)); 若不使用with则引用时相对要复杂些: document.write(Math.cos(35)) document.write(math.sin(80))
二、常用对象的属性和方法
JavaScript为我们提供了一些非常有用的常用内部对象。用户不需要用脚本来实现这些功能。这正是基于对象编程的真正目的。 在JavaScript提供了string(字符串)、math(数值计算)和Date(日期)三种对象。
从而为编程人员快速开发强大的脚本程序提供了非常有利的条件。
1、常用内部对象
在JavaScript中对于对象属性与方法的引用,有两种情况:其一是说该对象是静态对象,即在引用该对象的属性或方法时不需要为它创建实例;而另一种对象则在引用它的对象或方法是必须为它创建一个实例,即该对象是动态对象。 对JavaScript内部对象的引用,以是紧紧围绕着它的属性与方法进行的。因而明确对象的静态、动态性对于掌握和理解JavaScript内部对象是具有非常重要的意义。
1)、串对象 string对象:内部静态性。 访问对象属性和对象方法时,可使用(.)运算符实现。 基本使用格式:对象.属性;对象.方法
(1)串对象的属性 该对象只有一个属性,即length。它表明了字符串中的字符个数,包括所有符号。例: mytest="This is a JavaScript" mystringlength=mytest.length 最后mystringlength返回mytest字串的长度为20。(2)串对象的方法 string对象的方法共有19个。主要用于有关字符串在Web页面中的显示、字体大小、字体颜色、字符的搜索以及字符的大小写转换。其主要方法如下: o 锚点anchor():
该方法创建如用Html文档中一样的anchor标记。使用anchor如用Html中(A Name="")一样。通过下列格式访问:string.anchor(anchorName)。
o 有关字符显示的控制方法 big()字体显示,
Italics()斜体字显示
bold()粗体字显示
blink()字符闪烁显示
small()字符用小体字显示
fixed()固定高亮字显示
fontsize(size)控制字体大小等。
o 字体颜色方法;fontcolor(color)
o 字符串大小写转换 toLowerCase()-小写转换,
toUpperCase()大写转换。
下列把一个给定的串分别转换成大写和小写格式: string=stringValue.toUpperCase和string=stringValue.toLowerCase。
o 字符搜索:indexOf[charactor,fromIndex] 从指定formIndtx位置开始搜索charactor第一次出现的位置。 返回字串的一部分字串:substring(start,end) 从start开始到end的字符全部返回。 2)、算术函数的math对象 功能:提供除加、减、乘、除以外的一引些自述运算。如对数,平方根等。
静动性:静态对象(1)主要属性 math中提供了6个属性,它们是数学中经常用到的常数E、以10为底的自然对数LN10、以2为底的自然对数LN2、3.14159的PI、1/2的平方根SQRT1-2,2的平方根为SQRT2。(2)主要方法 绝对值:abs() 正弦余弦值:sin(),cos() 反正弦反余弦 :asin(), acos() 正切反正切:tan(),atan() 四舍五入:round() 平方根:sqrt() 基于几方次的值:Pow(base,exponent)...3)、日期及时间对象
功能:提供一个有关日期和时间的对象。 静动性:动态性,即必须使用New运算符创建一个实例。例: MyDate=New Date()
Date对象没有提供直接访问的属性。只具有获取和设置日期和时间的方法。 日期起始值:1770年1月1日00:00:00。(1)获取日期的时间方法 getYear(): 返回年数 getMonth():返回当月号数 getDate(): 返回当日号数 getDay():返回星期几 getHours():返回小时数 getMintes(:返回分钟数 getSeconds():返回秒数 getTime() : 返回毫秒数(2)设置日期和时间: setYear();设置年 setDate():设置当月号数 setMonth():设置当月份数 setHours():设置小时数 setMintes():设置分钟数 setSeconds():设置秒数 setTime ():设置毫秒数...
JavaScript中的系统函数
JavaScript中的系统函数又称内部方法。它提供了与任何对象无关的系统函数,使用这些函数不需创建任何实例,可直接用。1.返回字符串表达式中的值: 方法名:eval(字串表达式),例:test=eval("8+9+5/2");2. 返回字符串ASCI码: 方法名:unEscape (string)3.返回字符的编码: 方法名:escape(character)4.返回实数: 方法名:parseFloat(floustring);5.返回不同进制的数: 方法名:parseInt(numbestring ,rad.X) 其中radix是数的进制,numbs字符串数
三、JavaScript对象系统的使用
使用JavaScript可以创建自己的对象。虽然JavaScript内部和浏览器本身的功能已十分强大,但JavaScript还是提供了创建一个新对象的方法,完成许多复杂的工作。 在JavaScript中创建一个新的对象是十分简单的。
首先它必须定义一个对象,而后再为该对象创建一个实例。这个实例就是一个新对象,它具有对象定义中的基本特征。一、对象的定义 JavaScript对象的定义,其基本格式如下:
Function Object(属性表) This.prop1=prop1 This.prop2=prop2 ... This.meth=FunctionName1; This.meth=FunctionName2; ... 在一个对象的定义中,可以为该对象指明其属性和方法。通过属性和方法构成了一个对象的实例。如以下是一个关于University对象的定义:Function university(name,city,creatDate,URL) This.name=name This.city=city This.creatDate=New Date(creatDate) This.URL=URL其基本含义如下:Name-指定一个“单位”名称。 City-“单位”所在城市。 CreatDate-记载university对象的更新日期。 URL-该对象指向一个网址。二、创建对象实例一旦对象定义完成后,就可以为该对象创建一个实例了:NewObject=New object();其中Newobjet是新的对象,Object已经定义好的对象。例:
U1=New university(“云南省”,“昆明市”,"January 05,199712:00:00","http://www.YN.KM")U2=New university(“云南电子科技大学”,“昆明”,"January 07,1997 12:00:00","htlp://www.YNKJ.CN")
三、对象方法的使用 在对象中除了使用属性外,有时还需要使用方法。
在对象的定义中,我们看到This.meth=FunctionName语句,那就是为定义对象的方法。实质对象的方法就是一个函数FunctionName,通过它实现自己的意图。 例在university对象中增加一个方法,该方法是显示它自己本身,并返回相应的字串。function university(name,city,createDate,URL) This.Name=Name; This.city=city; This.createDate=New Date(creatDate); This.URL=URL; This.showuniversity=showuniversity; 其中This.showuniversity就是定义了一个方法---showuniversity()。 而showuniversity()方法是实现university对象本身的显示。function showuniversity() For (var prop in this) alert(prop+="+this[prop]+""); 其中alert是JavaScript中的内部函数,显示其字符串。 四、JavaScript中的数组 使用New创建数组 JavaScript中没有提供像其它语言具有明显的数组类型,但可以通过function定义一个数组,并使用New对象操作符创建一个具有下标的数组。从而可以实现任何数据类型的存储。a、定义对象的数组Function arrayName(size){ This.length=Size; for(var X=; X<=size;X++) this[X]=0; Reture this;} 其中arrayName是定义数组的一个名子,Size是有关数组大小的值(1-size),即数组元素的个数。通过for循环对一个当前对象的数组进行定义,最后返回这个数组。 从中可以看出,JavaScript中的数组是从1到size,这与其它0到size的数组表示方法有所不同,当然你可根据需要将数组的下标由1到size调整到0到size-1,可由下列实现:Function arrayName (size) For (var X=0; X<=size;X++) this[X]=0; this.lenght=size; Return this; 从上面可以看出该方法是只是调整了this.lenght的位置,该位置是用于存储数组的大小的。从而调整后的数组的下标将与其它语言一致。但请读者注意正是由于数组下标顺序由1到size,使得JavaScript中的对象功能更加强大。
b、创建数组实例一个数组定义完成以后,还不能马上使用,必须为该数组创建一个数组实例:Myarray=New arrayName(n);并赋于初值:Myarray[1]=“字串1”;Myarray[2]=“字串2”;Myarray[3]=“字串3”;...Myarray[n]=“字串n”;一旦给数组赋于了初值后,数组中就具有真正意义的数据了,以后就可以在程序设计过程中直接引用。创建多维数组Function creatMArray(row,col){ var indx=0; this.length=(row*10)+col for(var x=1;x<=row;x++) for(var y=1;y<=col;y++) indx=(x*10)+y; this[indx]=””;}myMArray=new creatMArray();之后可通过myMArray[11]、myMArray[12]、myMArray[13]、myMArray[21]、myMArray[22]、myMArray[23]、…来引用。
内部数组在Java中为了方便内部对象的操作,可以使用窗体(Forms)、框架(Frames)、元素(element)、链接(links)和锚(Anchors)数组实现对象的访问。 anchors[]:使用《A name=“anchorName“》标识来建立锚的链接。 links[]: 使用<A href=”URL”>来定义一个越文本链接项。 Forms[]: 在程序中使用多窗体时,建立该数组。 Elements[]:在一个窗口中使用从个元素时,建立该数组。 Frames[]:建立框架时,使用该数组 anchors[]用于窗体的访问(它是通过《form name=“form1”》所指定的),link[]用于被链接到的锚点的访问(它是通过《a href=URL》所指定的)。Forms[]反映窗体的属性,而anchors[]反映Web页面中的链接属性。有关锚数组的文档:<HTML><HEAD><BODY><A NAME=”MyAnchorsName1”> 定义第一个锚名HTML Code<A NAME=”MyAnchorsName2”> 定义第二个锚名HTML Code<A HREF=”#MyAnchorsName1”>建立锚的链接<A HREF=”#MyAnchorsName2?gt; 建立锚的链接….该文档段建立了两面全锚的链接,可通过Anchors[]访问这些锚。document.Anchors[0]反映第一个锚,而document.Anchors[1]反映第二个锚的有关信息。
JavaScript对象系统的使用(李晓华 2001年04月29日 01:50) 使用浏览器的内部对象系统, 可实现与HTML文档进行交互。它的作用是将相关元素组织包装起来,提供给程序设计人员使用,从而减轻编程人的劳动,提高设计Web页面的能力。一、浏览器对象层次及其主要作用 除了前面提到过的文档document对象外,Navigator浏览器中还提供了窗口(Window)对象以及历史(History)和位置(Location)对象。 浏览器对象(Navigator) 提供有关浏览器的信息 窗口对象(Windows) Window对象处于对象层次的最顶端,它提供了处理Navigator窗口的方法和属性。 位置对象(Location) Location对象提供了与当前打开的URL一起工作的方法和属性,它是一个静态的对象。 历史对象(History) History对象提供了与历史清单有关的信息。 文档对象(Document) document对象包含了与文档元素(elements)一起工作的对象,它将这些元素封装起来供编程人员使用。 编程人员利用这些对象,可以对WWW浏览器环境中的事件进行控制并作出处理。在JavaScript中提供了非常丰富的内部方法和属性,从而减轻了编程人员的工作,提高编程效率。这正是基于对象与面向对象的根本区别所在。在这些对象系统中,文档对象属于非常重要的,它位于最低层,但对于我们实现Web页面信息交互起作关键作用。因而它是对象系统的核心部分。 二、文档对象功能及其作用 在Navigator浏览器中,document文档对象是核心是,同时也是最重要的。见表6-1所示。
<本章完>
Links Anchor Form Method Prop 链接对象 锚对象 窗体对象 方法 对象
表6-1 document对象 从表6-1中可以看出,document对象的主要作用就是把这些基本的元素(如links,anchor等)包装起来,提供给编程人员使用。从另一个角度看,document对象中又是由属性和方法组成。 1、document中三个主要的对象在document中主要有:links,anchor,form等三个最重要的对象:(1)anchor锚对象:anchor对象指的是<A Name=...> </A>标识在HTML源码中存在时产生的对象。它包含着文档中所有的anchors信息。(2)链接links对象 link对象指的是用<A Href=...> </A>标记的连接一个超文本或超媒体的元素作为一个特定的URL。(3)窗体(Form)对象 窗体对象是文档对象的一个元素,它含有多种格式的对象储存信息,使用它可以在JavaScript脚本中编写程序进行文字输入,并可以用来动态改变文档的行为。通过document. Forms[]数组来使得在同一个页面上可以有多个相同的窗体,使用forms[]数组要比使用窗体名字要方便得多。例:下面就是一个使用窗体数组和窗体名字的例子。该程序使得两个窗体中的字段内容保持一致。Test6_1.htm
<Html><head></head><body><form ><input type=text onChange="document.my.elements[0].value=this.value;" ></form><form NAME="my"><input type=text onChange="document.forms[0].elements[0].value=this.value;"></form></body></html>
其中用了OnChnge事件(当窗体内容改变时激发)。第一个使用窗体名字标识my,第二个使用窗体数组Forms[]。其效果是一致。 2、文档对象中的attribute属性 document对象中的attribute属性,主要用于在引用Href标识时,控制着有关颜色的格式和有关文档标题、文档原文件的URL以及文档最后更新的日期。这部分元素的主要含义如下:(1)链接颜色:alinkcolor这个元素主要用于,当选取一个链接时,链接对象本身的颜色就按alinkcolo r指定改变。(2)链接颜色:linkcolor当用户使用<A Href=...> Text string </A>链接后,Textstring的颜色就会按Linkcolor所指定的颜色更新。(3)浏览过后的颜色:VlinkColor该属性表示的是已被浏览存储为已浏览过的链接颜色。(4)背景颜色:bgcolor该元素包含文档背景的颜色。(5)前景颜色:Fgcolor该元素包含HTML文档中文本的前景颜色。 3、文档对象的基本元素(1)窗体属性: 窗体属性是与HTML文档中<Form>...</Form>相对应的一组对象在HTML文档所创建的窗体数,由length指定。通过document.forms.length反映该文档中所创建的窗体数目。(2)锚属性:anchors 该属性中,包含了HTML文档的所有<A> </A>标记为Name=...的语句标识。所有“锚”的数目保存在document.anchors.length中。(3)链接属性:links 链接属性是指在文档中<A>...</A>的由Href=...指定的数目,其链接数目保存在document.links.length中。
JavaScript窗口及输入输出(李晓华 2001年04月29日 01:50) JavaScript是基于对象的脚本编程语言,那么它的输入输出就是通过对象来完成的。其中有关输入可通过窗口(Window)对象来完成,而输出可通过文档(document)对象的方法来实现。一、窗口及输入输出请看下面例子:
<HTML><Head><script languaga="JavaScript">Var test=window.prompt("请输入数据:");document.write(test+"JavaScript输入输出的例子");</script></Head></HTML>
其中window.prompt()就是一个窗口对象的方法,其基本作用是,当装入Web页面时在屏幕上显示一个具有“确定”和“取消”的对话框,让你输出数据。document.writle是一个文档对象的方法,它的基本功能,是实现Web页面的输出显示。见图1所示。图1 1、窗口对象 该对象包括许多有用的属性、方法和事件驱动程序,编程人员可以利用这些对象控制浏览器窗口显示的各个方面,如对话框、框架等。在使用应注意以下几点: 该对象对应于HTML文档中的<Body>和<FrameSet>两种标识; onload和onunload都是窗口对象属性; 在JavaScript脚本中可直接引用窗口对象。如:window.alert("窗口对象输入方法")可直接使用以下格式:alert("窗口对象输入方法") 2、窗口对象的事件驱动 窗口对象主要有装入Web文档事件onload和卸载时onunload事件。用于文档载入和停止载入时开始和停止更新文档。3、窗口对象的方法 窗口对象的方法主要用来提供信息或输入数据以及创建一个新的窗口。 创建一个新窗口open()使用window.open(参数表)方法可以创建一个新的窗口。其中参数表提供有窗口的主要特性和文档及窗口的命名。 具有OK按钮的对话框alert()方法能创建一个具有OK按钮的对话框。 具有OK和Cancel按钮的对话框confirm()方法为编程人员提供一个具有两个按钮的对话框。 具有输入信息的对话框prompt()方法允许用户在对话框中输入信息,并可使用默认值,其基本格式如下prompt(“提示信息”,默认值)。 4、窗口对象中的属性 窗口对象中的属性主要用来对浏览器中存在的各种窗口和框架的引用,其主要属性有以下几个:(1)frames 确文档中帧的数目frames(帧)作为实现一个窗口的分隔操作,起到非常有用的作用,在使用注意以下几点: frames属性是通过HTML标识<Frames>的顺序来引用的,它包含了一个窗口中的全部帧数。 帧本身已是一类窗口,继承了窗口对象所有的全部属性和方法。(2)Parent 指明当前窗口或帧的父窗口。(3)defaultstatus:默认状态,它的值显示在窗口的状态栏中。(4)status:包含文档窗口中帧中的当前信息。(5)top:包括的是用以实现所有的下级窗口的窗口。(6)window.指的是当前窗口(7)self:引用当前窗口。 5、输出流及文档对象 在JavaScript文档对象中,提供了用于显示关闭、消除、打开HTML页面的输出流。(1)创建新文档open()方法 使用document.open()创建一个新的窗口或在指定的命令窗口内打开文档。由于窗口对象是所加载的父对象,因而我们在调用它的属性或方法时,不需要加入Window对象。例用Window. Open()与Open()是一样的。打开一个窗口的基本格式:Window .open("URL","窗口名字","窗口属性"]window属性参数是由一个字符串列表项它由逗号分隔,它指明了有关新创建窗口的属性。见表7-1所示。表7-1
参 数
设定值
含 义
toolbar
yes/no
建立或不建立标准工具条
location
yes/no
建立或不建立位置输入字段
directions
yes/no
建立或不建立标准目录按钮
status
yes/no
建立或不建立状态条
menubar
yes/no
建立或不建立菜单条
scrollbar
yes/no
建立或不建立滚动条
revisable
yes/no
能否改变窗口大小
width
yes/no
确定窗口的宽度
Height
yes/no
确定窗口的高度。
在使用Open()方法时,需要注意以下点。 通常浏览器窗中,总有一个文档是打开的。因而不需要为输出建立一个新文档。 在完成对Web文档的写操作后,要使用或调用close()方法来实现对输出流的关闭。 在使用open()来打开一个新流时,可为文档指定一个有效的文档类型,有效文档类型包括text/HTML、text/gif、text/xim、text/plugin等。(2)write()、writeln()输出显示。该方法主要用来实现在Web页面上显示输出信息。在实际使用中,需注意以下几点: writeln()与write()唯一不同之处在于在未尾加了一个换符。 为了正常显示其输出信息,必须指明<pre> </Pre>标记,使之告诉编辑器。 输出的文档类型,可以由浏览器中的有效的合法文本类型所确定。(3)关闭文档流close()在实现多个文档对象中,必须使用close()来关闭一个对象后,才能打开另一个文档对象。(4)清除文档内容clear()使用该方法可清除已经打开文档的内容。 二、简单的输入、输出例子 在JavaScript中可以非常方便地实现输入输出信息,并与用户进行交互。1、JavaScript信息的输入 通过使用JavaScript中所提供的窗口对象方法prompt(), 就能完成信息的输入。该方法提供了最简便的信息输入方式,其基本格式如下:Window.prompt("提示信", 预定输入信息); 此方法首先在浏览器窗口中弹出一个对话框, 让用户自行输入信息。一旦输入完成后,就返回用户所输入信息的值。例:test=prompt(“请输入数据:”,”this is a JavaScript”) 实际上prompt()是窗口对象的一个方法。因为缺省情况下所用的对象就是window对象, 所以windows对象可以省略不写。 2、输出显示 每种语言,都必须提供信息数据的输出显示。JavaScript也是一样,它提供有几个用于信息输出显示的方法。比较常用的有window.alert()、document.write和及document.writln()方法。1)、document.write()方法和document.writeln()方法 document是JavaScript中的一个对象在它中封装许多有用的方法,其中write()和writeln()就是用于将文本信息直接输出到浏览器窗口中的方法。document.write();document.writeln();说明: write()和writeln()方法都是用于向浏览器窗口输出文本字串; 二者的唯一区别就是writeln()方法自动在文本之后加入回车符。 2)、 window.alert()输出 在JavaScript为了方便信息输出,JavaScript提供了具有独立的对话框信息输出─alert()方法。alert()方法是window对象的一个方法,因此在使用时,不需要写window窗口对象名,而是直接使用就行了。它主要用途用在输出时产生有关警告提示信息或提示用户,一旦用户按“确定”钮后,方可继续执行其他脚本程序。例:
<HTML><HEAD><TITLE></TITLE></HEAD><BODY><Script Language ="JavaScript">alert("这是一个JavaScript测试程序");</Script></BODY></HTML>
3)、利用输入、输出方法实现交互 在JavaScript中,可以利用prompt()方法和write()方法实现与Web页面用户进行交互。例下面就是一个有关实现交互的例子。Test7_1.htm
<HTML><HEAD><TITLE></TITLE></HEAD><BODY><Script Language="JavaScript"><!-- Hide From Other Browsersdocument.write("<H1>有关交互的例子");my=prompt("请输入数据:");document.write(my+"</H1>");document.close();// Stop Hiding from Other Browsers--></Script></BODY></HTML>
从上面程序可以看出: 可通过write()和prompt()方法实现交互。 在JavaScript脚本语言中可以使用HTML标识语言的代码。从而实现混合编程。其中<H1>和<Br>就是HTML标识符。
用JavaScript脚本实现Web页面信息交互(李晓华 2001年04月29日 01:50) 要实现动态交互,必须掌握有关窗体对象(Form)和框架对象(Frames)更为复杂的知识。一、窗体基础知识 窗体对象可以使设计人员能用窗体中不同的元素与客户机用户相交互,而用不着在之前首先进行数据输入,就可以实现动态改变Web文档的行为。1、什么是窗体对象窗体(Form):它构成了Web页面的基本元素。通常一个Web页面有一个窗体或几个窗体,使用Forms[]数组来实现不同窗体的访问。
<form Name=Form1><INPUT type=text...><Input type=text...><Inpup byne=text...></form><form Name=Form2><INPUT type=text...><Input type=text...></form>
在Forms[0]中共有三个基本元素,而Forms[1]中只有两个元素。 窗体对象最主要的功能就是能够直接访问HTML文档中的窗体,它封装了相关的HTML代码:
<FormName ="表的名称"Target ="指定信息的提交窗口"action ="接收窗体程序对应的URL"Method =信息数据传送方式(get/post)enctype ="窗体编码方式"[onsubmit ="JavaScript代码"]></Form>
2、窗体对象的方法 窗体对象的方法只有一个--submit()方法,该方法主要功用就是实现窗体信息的提交。如提交Mytest窗体,则使用下列格式:document.mytest.submit() 3、窗体对象的属性 窗体对象中的属性主要包括以下:elements name action target encoding method. 除Elements外,其它几个均反映了窗体中标识中相应属性的状态,这通常是单个窗体标识;而elements常常是多个窗体元素值的数组,例:elements[0].Mytable.elements[1] 4、访问窗体对象在JavaScript中访问窗体对象可由两种方法实现:(1)通过访问窗体 在窗体对象的属性中首先必须指定其窗体名,而后就可以通过下列标识访问窗体如:document.Mytable()。(2)通过数组来访问窗体 除了使用窗体名来访问窗体外,还可以使用窗体对象数组来访问窗体对象。但需要注意一点,因窗体对象是由浏览器环境的提供的,而浏览器环境所提供的数组下标是由0到n。所以可通过下列格式实现窗体对象的访问:document.forms[0]document.forms[1]document.forms[2]... 5、引用窗体的先决条件 在JavaScript中要对窗体引用的条件是:必须先在页面中用标识创建窗体,并将定义窗体部分放在引用之前。 二、窗体中的基本元素窗体中的基本元素由按钮、单选按钮、复选按钮、提交按钮、重置按钮、文本框等组成。在JavaScript中要访问这些基本元素,必须通过对应特定的窗体元素的数组下标或窗体元素名来实现。每一个元素主要是通过该元素的属性或方法来引用。其引用的基本格式见下:formName.elements[].methadName (窗体名.元素名或数组.方法)formName.elemaent[].propertyName(窗体名.元素名或数组.属性) 下面分别介绍: 1、Text单行单列输入元素 功能:对Text标识中的元素实施有效的控制。 基本属性:Name:设定提交信息时的信息名称。对应于HTML文档中的Name。Value:用以设定出现在窗口中对应HTML文档中Value的信息。defaultvalue:包括Text元素的默认值 基本方法:blur():将当前焦点移到后台。select():加亮文字。 主要事件:onFocus:当Text获得焦点时,产生该事件。OnBlur:从元素失去焦点时,产生该事件。Onselect:当文字被加亮显示后,产生该文件。onchange:当Text元素值改变时,产生该文件。例:...
<Form name="test"><input type="text" name="test" value="this is a javascript" ></form>...<script language ="Javascirpt">document.mytest.value="that is a Javascript";document.mytest.select();document.mytest.blur();</script>
2、textarea多行多列输入元素 功能:实施对Textarea中的元素进行控制。 基本属性name:设定提交信息时的信息名称,对应HTML文档Textarea的Name。Value:用以设定出现在窗口中对应HTML文档中Value的信息。Default value:元素的默认值。 方法:blur():将输入焦点失去select():将文字加亮后 事件:onBlur:当失去输入焦点后产生该事件onFocus:当输入获得焦点后,产生该文件Onchange:当文字值改变时,产生该事件Onselect:当文字加亮后,产生该文件 3、Select选择元素 功能:实施对滚动选择元素的控制。 属性:name:设定提交信息时的信息名称,对应文档select中的name。Length:对应文档select中的lengthoptions:组成多个选项的数组selectIndex;该下标指明一个选项select在中每一选项都含有以下属性:Text:选项对应的文字selected:指明当前选项是否被选中Index:指明当前选项的位置defaultselected:默认选项 事件:OnBlur:当select选项失去焦点时,产生该文件。onFocas:当select获得焦点时,产生该文件。Onchange:选项状态改变后,产生该事件。 4、Button按钮 功能:实施对Button按钮的控制。 属性:Name:设定提交信息时的信息名称,对应文档中button的Name。Value:用以设定出现在窗口中对应HTML文档中Value的信息。 方法:click()该方法类似于一个按下的按钮。 事件:onclick当单击button按钮时,产生该事件。例 :
<Form name="test"><input type="button" name="testcall" οnclick=tmyest()></form>...<script language="javascirpt">document.elements[0].value="mytest"; //通过元素访问或document.testcallvalue="mytest"; // 通过名字访问</script>.....
5、checkbox检查框 功能:实施对一个具有复选框中元素的控制。 属性:name:设定提交信息时的信息名称。Value:用以设定出现在窗口中对应HTML文档中Value的信息。Checked:该属性指明框的状态true/false.defauitchecked:默认状态 方法:click()该方法使得框的某一个项被选中。 事件:onclick:当框的选被选中时,产生该事件。 6、radio无线按钮 功能:实施对一个具单选功能的无线按钮控制。 属性:name:设定提交信息时的信息名称,对应HTML文档中的radio的name相同value:用以设定出现在窗口中对应HTML文档中Value的信息,对应HTML文档中的radio的name。length:单选按钮中的按钮数目。defalechecked:默认按钮。checked:指明选中还是没有选中。index:选中的按钮的位置。 方法:chick():选定一个按钮。 事件:onclick:单击按钮时,产生该事件。 7、hidden:隐藏 功能:实施对一个具有不显示文字并能输入字符的区域元素的控制。 属性:name:设定提交信息时的信息名称,对应HTML文档的hidden中的Name。Value:用以设定出现在窗口中对应HTML文档中Value的信息,对应HTML文档hidden中的value。defaleitvalue:默认值 8、Password口令 功能:实施对具有口令输入的元素的控制。 属性:Name:设定提交信息时的信息名称,对应HTML文档中password中的name。Value:用以设定出现在窗口中对应HTML文档中Value的信息,对应HTML文档中password中的Value。defaultvalu:默认值 方法select():加亮输入口令域。blur():使这丢失passward输入焦点。focus():获得password输入焦点。 9、submit提交元素 功能:实施对一个具有提交功能按钮的控制。 属性:name:设定提交信息时的信息名称,对应HTML文档中submit。Value:用以设定出现在窗口中对应HTML文档中Value的信息,对应HTML文档中value。 方法click()相当于按下submit按钮。 事件:onclick()当按下该按钮时,产生该事件。