教程二、函数的应用
这个教程中我要讲的是有关函数(function)的使用,函数在JavaScript中应用是相当广
泛的,几乎在后边的所有例子中我们都将用到函数,可以看出它在JavaScript中的作用
是多么的重要!
例2 第一个函数示例
<html>
<head>
<title>第一个函数示例</title>
<script language="Javascript">
<!--
function talk(){
alert("嘿,你干吗点我?");
}//end function
-->
</script>
</head>
<body>
<form>
<p><input type="button" name="B1" value="请点击……" onclick="talk
()"> </p>
</form>
</body>
</html>
例2的运行结果如下:(FBBS不支持HTML,故略)
在此例中,我们通过Html语句<input type="button" ……>产生一个按钮,当
浏览者用鼠标去点击此按钮时将触发按钮的onclick事件,于是依据语句onclick="talk
()"Html文件将会调用函数talk()。函数必须用function来标识,然后空一格,紧跟函
数名,接着是"()"号,函数中可以有很多语句,这些语句必须用"{"号和"}"号括起来。
函数talk()只有一条语句alert("嘿,你干吗点我?");函数alert()是一个JavaScript自
带的,它将弹出一个小的警告窗体,并带有文字“嘿,你干吗点我?”和一个“确定”
(OK)的按钮。例中的“//”符号是JavaScript的注释符号,即紧跟在此符号后边的内容
为注释部分,此例中注释内容是“end function”,我习惯用这种方法来注释,因为如
果"{"和"}"符号一多的话就分不清哪个"}"符号对应哪个"{"符号了。
这里要说明的是,函数并不一定要放到调用此函数的语句之前,您可以把函数放到
Html文件的最后面,当函数被调用时,它一样可以执行!不信您可以试试看!
我再提醒一下,请务必记住:JavaScript是区分大小写的,所以函数名也必须区分
大小写,函数talk()和Talk()、alert()和Alert()都是不同的函数,您若是把函数alert()
改称了Alert(),那将会出现脚本错误,因为JavaScript并没有自带函数Alert()。
例3 简单函数调用
<html>
<head>
<title>简单函数调用</title>
<script language="JavaScript">
<!--
function info(){
alert("请使用IE4.0以上版本,800*600分辨率浏览此网页!");
}//end function
function hello(){
if(T1.value==""){
alert("对不起,请输入您的姓名!");
}
else{
document.write("您好,"+T1.value+"!");
}//end if
}//end function
-->
</script>
</head>
<body onload="info()">
<p>请输入您的姓名:<br>
<input type="text" name="T1" size="20"><input type="button"
value="问候……" name="B1"
onclick="hello()"></p>
</body>
</html>
此例的运行结果请点击“在线示例”。
例3中出现了两个函数:info()和hello()。对于简单的info()函数我就不多讲了,它
是在Html文件被浏览器装载时被调用的,调用的语句是:onload="info()",onload
事件者能放在<body>标签中,并且当Html文件被浏览器装载时触发此事件。hello()
函数则是在名为"B1"的按钮被按下时触发的onclick事件调用,这个函数中有一个判断
语句“if……else……”,该判断语句的语法结构如下:
if(判断条件){
语句1;
语句2;
……
语句n;
}
else{
语句1;
语句2;
……
语句n;
}
判断条件中的判断符号可以是==(等于)、<(小于)、>(大于)、<=(小于等于)、>=
(大于等于)或!=(不等于)。特别要注意的是等于是==而不是=,不等于是!=而不是
<>。
在本例的if……else……语句中,出现了T1.value,它指代的是Html文档中语句
<input type="text" name="T1" size="20">创建的文本框“T1”,输入到此文
本框的文本可以使用T1.value调出来。加号“+”用于字符串的合并,例如变量str存
放着字符串“hello”,则 str+",the world!" 可得到字符串“hello,the world!”。
教程三、history对象
JavaScript提供了很多对象,我们先讲一下history对象。history对象用来存储客户
机上的浏览器已经访问过的网址(URL),这些信息存储在一个history列表中,通过对
history对象的引用,我们可以让客户机的浏览器返回到它曾经访问过的网页去。其实
它的功能和浏览器(这里指的是中文IE)的工具栏上的“后退”和“前进”按钮时一样
的,下面看一个例子。
例4 history对象示例1
<html>
<head>
<title>history对象示例1</title>
</head>
<body>
<ul>
<li onclick="history.go(-2)">后退两页</li>
<li onclick="history.back()">后退一页</li>
<li onclick="history.forward()">前进一页</li>
<li onclick="history.go(2)">前进两页</li>
</ul>
</body>
</html>
此例中直接将JavaScript代码加入到Html的标签里边,这是使用JavaScript比较简
单的方法,但对于语句较多的代码则不适合使用此方法。例4首先由Html代码
<ul><li……>……</li></ul>列出了一个列表,当列表中的某一项被鼠标点击时将触
发onclick事件,此事件执行JavaScript代码,调用history对象的go()、back()或
forward()方法,这样就使浏览器从新定位了。使用go()方法要加入参数,此参数必须
为整数,如-3、-2、-1、0、1、2、3……,go(0)是将浏览器定位到当前的位置,等
于是“刷新”了一下,负整数是后退到当前页以前的那些页面,其绝对值即是回退的页
面数,如go(-2)回退到在当前页前边访问过的前两页,同理,正整数是前进到当前页前
边的那些页面。back()方法是用来使浏览的页面后退到当前页的前一页,相当于go(-
1),与之相反,forward()方法则是使浏览的页面前进到当前页的前一页,相当于go
(1),注意:back()和forward()方法是不用加参数的。于是,例4也可以改成下边的例
5,其作用是一样的。
例5 history对象示例2
<html>
<head>
<title>history对象示例2</title>
</head>
<body>
<ul>
<li onclick="history.go(-2)">后退两页</li>
<li onclick="history.go(-1)">后退一页</li>
<li onclick="history.go(1)">前进一页</li>
<li onclick="history.go(2)">前进两页</li>
</ul>
</body>
</html>
教程四、window对象
window是JavaScript的高级对象,它是document、location和history对象的父对
象。正因为window是一个很高级的对象,所以通常在JavaScript代码编写中应用它的
方法、属性时我们并不是必须写出window对象,如引用window的parent属性时:
window.parent可以简单写成parent。window的属性有frames、parent、self、
top、status和defaultStatus等六个,下面请看例子。
例6 window对象示例
<html>
<head>
<title>window对象示例</title>
</head>
<script language="JavaScript">
<!--
function init(){
window.defaultStatus="这一页是window对象示例!";
}
function windowOpener() {
msgWindow=open
("","NewWindow","toolbar=0,directories=0,menubar=0");
msgWindow.document.write("<head><title>window对象示例--新窗口
</title></head>");
msgWindow.document.write("<body><p>Hello,the world!</p><br>");
msgWindow.document.write("<p onclick='NewWindow.close()'>点击此处可
以关闭窗口!</p></body>");
}
-->
</script>
<body onload="init()">
<p onmouseover="window.status='Hello,the world!';return true">将鼠标
放在上边可以改变浏览器的状态栏</p>
<p><br>
</p>
<p onclick="windowOpener()">用鼠标点击可以打开一个新的窗口!</p>
</body>
</html>
此例效果请看“在线示例”
在例6中,我使用了window对象的defaultStatus、status和self属性,对于另
外的frames、parent、top属性我们将会在以后的教程中讲到。defaultStatus属性
是用来设置浏览器的状态栏(一般是在浏览器的下边)显示的默认文本,status则是用来
显示浏览器当前状态栏中的文本,它与defaultStatus是有所区别的。self属性指代的
是当前窗口,它与window对象几乎是指同一个东东,比如,您想调用window的
close()方法,则window.close()、self.close()和close()都将起到同样的作用,即
关闭当前窗口。哈哈,这顺便把window的close()方法也讲了。
当例6被浏览器装载时(即被浏览时),触发window对象的onload()事件(与之相反
的是被卸载时将触发window对象的onUnLoad事件),onload()事件调用函数init
(),在此函数中,window对象的defaultStatus属性被设置为文本“这一页是
window对象示例!”,这样浏览器的状态栏就显示此文本了。对于语句<p
onmouseover="window.status='Hello,the world!';return true">将鼠标放在
上边可以改变浏览器的状态栏</p>,当鼠标移动到文本上边时,将触发
onmouseover事件,执行JavaScript代码,代码中将状态栏的文本设置为
“Hello,the world!”,因为有两条语句,所以要用分号(;)隔开,第二条语句return
true是不可缺少的,只有执行了此语句状态栏的文本设置才会生效。
现在我们要重点来讲一下函数windowOpener()了,第一条语句使用了window
对象的open()方法,此方法用来打开一个新的窗口,它有三个参数,前两个是必须填写
的,第三个则是可选的,有没有都可以。语法如下
window.open("URL", "windowName", ["windowFeatures"])
URL是新窗口所要装载的Html文件的网址和文件名,若此参数为"",则将打开一个空的
什么也没有窗口(即没有任何源代码),您可以用我在前边讲的document.write()方法
在此窗口中输入代码,本例就是如此。第二个参数windowName是新开的窗口的名
字,此名字即是一个字符串,其中间不能有空格。第三个是可选参数
windowFeatures,它是用来设置新窗口的一些特征东东。如toolbar=0设置新窗口
中没有滚动轴,menubar=0设置新窗口中不显示菜单栏。参数之间要用逗号(“,”)隔
开而且不能有空格,其它参数如下:
toolbar[=yes|no]|[=1|0]
location[=yes|no]|[=1|0]
directories[=yes|no]|[=1|0]
status[=yes|no]|[=1|0]
menubar[=yes|no]|[=1|0]
scrollbars[=yes|no]|[=1|0]
resizable[=yes|no]|[=1|0]
copyhistory[=yes|no]|[=1|0]
width=pixels
height=pixels
从参数的英文中很容易看出各个参数的作用。中括号“[]”表示的是可选项,这些参
数很多都具有默认值yes或1,所以您也可以直接使用toolbar,它等价于
toolbar=yes或者toolbar=1,但对于no值和0值的设置则要写全,即toolbar=no或
者toolbar=0,其它参数项页是一样的。好了,将完了open()方法,我们继续下边的
语句。程序中把新打开的窗口赋给了一个变量msgWindow,在JavaScript中,变量
并不是必须声明了才可以使用,不声明一样用的很好,如果要声明的话,请用语句
“var msgWindow;”,var即是用来声明变量的。后面就使用了msgWindow变量
引用对象document的write()方法,因为msgWindow代表的是窗口对象,是老大,
document对象是窗口对象的子对象,所以引用时必须层层引用,即先写
msgWindow,再写document,然后才能引用document对象的write()方法。接下
来的语句就是往新的窗口里输入代码了,这里就不多讲了。对于代码<p
onclick='NewWindow.close()'>点击此处可以关闭窗口!</p></body>,当鼠标
点击此行文本后将触发onclick()事件,执行代码NewWindow.close(),即把名为
NewWindow的新窗口关闭掉,此代码也可写成window.close(),因为
NewWindow指的就是当前的新窗口window。对于window对象的close()方法我在
前边已经讲过了,就不多说了。
附:心梦网页特效管理专家8.5XP的破解
这是一个作网页、学javascript很好的东西,我刚学特效的时候,就用的他,但是有
二十次的限制,至今没有找到破解的版本(大家找找,他的算法挺简单的)
打开时:
他会说,“心梦网页特效管理专家8.5XP”是共享软件,你
如果不注册,只能免费使用20次,注册后可以享受到完
善的升级和技术支持服务。
不理他。
点“稍后注册”
在下面有“软件未注册,你还能使用XX次”
我们知道这样的软件,一般是把注册码、使用次数保存在注册表中,
替大家找到了,是
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Tele
phony\temp
下面的smyx项值为你的使用次数,只要将其改为你想要的值即可:呵呵
By japanisapig