楼主: keaide

JavaScript技术讲座

[复制链接]
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
41#
 楼主| 发表于 2006-7-26 23:13 | 只看该作者
第八讲 WEB页面信息的交互

要实现动态交互,必须掌握有关窗体对象(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代码:

<Form

Name ="表的名称"

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

使用道具 举报

回复
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
42#
 楼主| 发表于 2006-7-26 23:13 | 只看该作者
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:当文字加亮后,产生该文件

使用道具 举报

回复
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
43#
 楼主| 发表于 2006-7-26 23:13 | 只看该作者
3、Select选择元素

 功能:实施对滚动选择元素的控制。

 属性:

name:设定提交信息时的信息名称,对应文档select中的name。

Length:对应文档select中的length

options:组成多个选项的数组

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" onclick=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:单击按钮时,产生该事件。

 

使用道具 举报

回复
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
44#
 楼主| 发表于 2006-7-26 23:14 | 只看该作者
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()当按下该按钮时,产生该事件。

使用道具 举报

回复
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
45#
 楼主| 发表于 2006-7-26 23:14 | 只看该作者
三、范例

下面我们演示通过点击一个按钮(red)来改变窗口颜色,点击“调用动态按钮文档”调用一个动态按钮文档。


test8_1.htm
<html>
<head>
<Script Language="JavaScript">
//原来的颜色
document.bgColor="blue";
document.vlinkColor="white";
document.linkColor="yellow";
document.alinkcolor="red";
//动态改变颜色

function changecolor(){
   document.bgColor="red";
   document.vlinkColor="blue";
   document.linkColor="green";
   document.alinkcolor="blue";
}

</script>
</HEAD>
<body bgColor="White" >
<A href="test8_2.htm"> 调用动态按钮文档</a>

<form >
   <Input type="button"  Value="red" onClick="changecolor()">
</form>
</BODY>
</HTML>

输出结果见图1所示。

image6.gif (12.31 KB, 下载次数: 32)

image6.gif

使用道具 举报

回复
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
46#
 楼主| 发表于 2006-7-26 23:15 | 只看该作者
动态按钮程序。
test8_2.htm
<HTML>
<HEAD>
</HEAD>

<p align="center"> </p>
<div align="center"><center>

<table border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="100%"><form name="form2" onSubmit="null">
     <p><input type="submit" name="banner" VALUE="Submit"
     onClick="alert('You have to put an \'action=[url]\' on the form
tag!!')"> <br>

<script language="JavaScript">

var id,pause=0,position=0;
function banner() {
        // variables declaration
           var i,k,msg="    这里输入你要的内容";// increase msg
        k=(30/msg.length)+1;
        for(i=0;i<=k;i++) msg+=" "+msg;
        // show it to the window
       document.form2.banner.value=msg.substring(position,position-30);
        // set new position
       if(position++==msg.length) position=0;
        // repeat at entered speed
        id=setTimeout("banner()",60); }
// end -->
banner();
</script></p>
    </form>
    </td>
  </tr>
</table>
</center></div>

<p> </p>

<BODY>
<A href="test8_1.htm"> 返回</a>

</BODY>
</HTML>

输出结果见图2所示。

image5.gif (12.51 KB, 下载次数: 29)

image5.gif

使用道具 举报

回复
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
47#
 楼主| 发表于 2006-7-26 23:15 | 只看该作者
第九讲 实现更复杂的交互

一、什么是框架

  框架Frames最主要功用是"分割"视窗,使每个"小视窗"能显示不同的HTM L文件,不同框架之间可以互动(interact),这就是说不同框架之间可以交换讯息与资料。例如:假设您开了两个frames,第一个frame可显示书的目录,第二个frame则显示章节的具体内容。
  框架可以将屏幕分割成不同的区域,每个区域有自己的URL,通过Frames[]数组对象来实现不同框架的访问。实际上框架对象本身也一类窗口,它继承了窗口对象的所有特征,并拥有所有的属性和方法。下面我们先看一下框架的例子。见图9-1所示。

image28.gif (13.46 KB, 下载次数: 29)

image28.gif

使用道具 举报

回复
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
48#
 楼主| 发表于 2006-7-26 23:16 | 只看该作者
<HTML>
<HEAD>
</HEAD>
<Frameset Rows="20%,80%">
<frame src="test9_1.html">
<Frameset Cols="50%,50%">
<frame src="test9_2.html">
<frame src="test9_3.html">
</Frameset>
</Frameset>
</HTML>
  以上HTML标识将屏幕分成三个框架。先将窗口分成以二行为单位的窗口,之后再按分成二个窗口。并在相应的框架中放入自己的HTML文档。

  通过[Framset ]告诉浏览器您要设置几个框架;rows这项参数告诉浏览器您想将视窗分割成几列;而 cols这项参数是告诉浏览器您想将视窗分割成几 行。

  可以用很多组的 <frameset...> tags 将视窗分割得更复杂。

  可以给每个frame一个"名字" (name)。frame的名字在JavaScript语法中的地位非常重要。

  可以用 <src> 告诉浏览器您要载入哪一个 HTML文件。

二、如何访问框架

  在前面我们介绍过使用document.forms[]实现单一窗体中不同元素的访问。而要实现框架中多窗体的不同元素的访问,则必须使用window对象中的Frames属性。Frames属性同样也是一个数组,他在父框架集中为每一个子框架设有一项。通过下标实现不同框架的访问:

parent.frames[Index1].docuement.forms[index2]

通过parent.frames.length确定窗口中窗体的数目。

除了使用数组下标来访问窗体外还可以使用框架名和窗体名来实现各元素的访:

parent.framesName.decument.formNames.elementName.(m/p)

 

使用道具 举报

回复
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
49#
 楼主| 发表于 2006-7-26 23:16 | 只看该作者
三、范例

  下面我们通过一个具体的实例, 来说明利用JavaScript脚本在WEB中实现更为复杂的信息交互。该例子是在一个多窗口中实现窗体信息的动态交互,在程序中首先在浏览器窗口中制作三个用于窗体交互的窗口,每个窗体窗口实现不同信息的动态交互。

tset9.html为主调用文档它首先将窗口划分为具有二行的窗体,尔后再将第二行的窗体划分为具有二列的窗体;

test9-1.html为显示标题文档;
test9_2.html为第二框架文档其中需要注意的是:
通过JavaScript脚本将所示的“云南省”和“四川省”分别改为“昆明市”和“成都市”;
test7_3.html为第三框架文档。

 

主调文档
主要作用是将窗口划分为具有二行的窗体,尔后再将第二行的窗体划分为具有二列的窗体。

Test9.htm

<HTML>
<HEAD>
</HEAD>
<Frameset Rows="10%,90%">
           <frame src="test9_1.htm">
           <Frameset Cols="40%,60%">
               <frame src="test9_2.htm">
                 <frame src="test9_3.htm">
           </Frameset>
        </Frameset>
</HTML>
第一个框架
主要作用是显示标题文档。

Test9_1.htm

<HTML>
<HEAD>
</HEAD>
<H2>使用框架实现WEB交互</H2>
</HTML>
 
第二个框架
主要作用是实现交互。可以通过JavaScript脚本将所示的“云南省”和“四川省”分别改为“昆明市”和“成都市”。

Test9_2.htm

<HTML>
<HEAD>
</HEAD>
<Body>
<Form name="test9_1">
请选择城市:<BR>
<Select name="select1" Multiple>
<Option>云南省
<Option>四川省
<Option>贵州省                                       
<Option>山东省
<Option>江苏省
<Option>浙江省
<Option>安徽省                                       
<Option>河南省

</select><BR>
<HR>
<Input Type="Submit" name="" value="提交">
<Input Type="reset" name="" value="复位">
</Form>
<pre>
<script language="JavaScript">
   document.test9_1.elements[0].options[0].text="昆明市";
   document.test9_1.elements[0].options[1].text="成都市";
</script>
</pre>
</Body>
</HTML>

使用道具 举报

回复
论坛徽章:
456
ITPUB年度最佳版主
日期:2011-12-28 15:24:18马上有对象
日期:2014-02-19 11:55:14马上有钱
日期:2014-02-19 11:55:14马上有房
日期:2014-02-19 11:55:14马上有车
日期:2014-02-19 11:55:14ITPUB年度最佳版主
日期:2014-02-19 10:05:27优秀写手
日期:2013-12-18 09:29:09ITPUB社区千里马徽章
日期:2013-06-09 10:15:34ITPUB年度最佳版主
日期:2013-01-30 17:30:25版主9段
日期:2012-07-03 02:21:03
50#
 楼主| 发表于 2006-7-26 23:16 | 只看该作者
第三个框架
 

主要作用是实现交互。

Test9_3.htm

<HTML>
<HEAD>
</HEAD>
<Body>
<Form name="test9_2">
请输入用户名:
<Input Type="text" name="text1" Value="" Size=20><BR>
<HR>
请选择:
<Input Type="Checkbox" name="checkbox1" Value="qb">全部信息<BR>
<Input Type="Checkbox" name="checkbox2" Value="bf">部分信息<BR>
<Input Type="Checkbox" name="checkbox3" Value="sy">所有城市<br>
<HR>
<Input Type="Submit" name="" value="提交">
<Input Type="reset" name="" value="复位">
<BR>
</Form>
<script language="JavaScript">
   document.test9_2.elements[0].value="劳动和社会保障";
   document.test9_2.elements[1].checked=true;
   document.test9_2.elements[2].checked=true;
   document.test9_2.elements[3].checked=false;
</script>
</Body>
</HTML>

  在浏览器中的结果见图9-2所示。

image7.gif (16.37 KB, 下载次数: 27)

image7.gif

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表