JAVASCRIPT教程

      网页设计 2007-10-7 0:12

  JavaScript 是什么?

JavaScript 是一种新的描述语言,此语言可以被嵌入 HTML 的文件之中。 透过 JavaScript 可以做到回应使用者的需求事件 (如: form 的输入) 而不用任何的网络回传输资料,所以当一位使用者输入一项资料时,它不用经过传给服务器端 (server) 处理,再传回来的过程,而直接可以被客户端 (client) 的应用程序所处理。

JavaScript Java 很类似,但到底并不一样! Java 是一种比 JavaScript 更复杂 许多的程式语言,而 JavaScript 则是相当容易了解的语言。JavaScript 创作者 可以那麽注重程式技巧,所以许多 Java 的特性在 Java Script 中并不支持。

如何执行 JavaScript

JavaScript 如何执行呢? Netscape 2.0 beta 3 版以上,就可以执行 JavaScript 的功能了,其他种类的 WWW 浏览器如:Internet Expiree 3.0也有此功能。

范例教程

范例 1 如何用 JavaScript 印出一串文字至 HTML 文件中: My first JavaScript!
This is a normal HTML document.
这是以 JavaScript 印出的
!
Back in HTML again.
如果你使用的 WWW 浏览器是 Netscape 2.0 beta 3 以上版本的话,那你就可以 看到相关的结果,以上范例的结果如下:
This is a normal HTML document.
如果你是使用 Netscape 2.0 beta 3 以上的浏览器, JavaScript 语法部份 的结果如下,你可以试着按按钮看看有何结果产生! 在范例 2 中,将会产生一个按钮,当你用滑去按它的时候,应该会出现 一个视窗上面有"! 你好"的字串,这个结果是如何产生 的呢?首先,在 form>标签
Please enter your name:

现在你可以试试结果如何: 请输入你的名字: 在这个例子中又有新的东西了。首先,让我们注意一下,在语法中的注解部分
( This is a simple HTML- page.
Last changes: 05/13/2000 17:22:02
以上的 document.lastModified 叁数在 Netscape 2.0 beta 2 版时是被写成 documeut.lastmodified 的,然而,之後的版本就改为 document.lastModified 所以注意一下 JavaScript 本身是会区分大小写的, lastmodified lastModified 在它看来是不同的结果。


在这一部分首先要为你展示的JavaScript特性是将你的鼠标 的连 结上 面, 果。 后这 JavaScript 合。 的连 结上 面, 现, 法:

<a href="tpage.htm" onMouseOver="window.status='Just another stupid link...'; return true">

<a> onMouseOver method 了。 window.status WWW 的。 中, ' 分, " 括起 来, 后, ; return true

子! 单, onMouseOver method 后配 hello() 了, 下:

<html>
<head>
<script language="LiveScript">
<!-- Hiding
function hello() {
alert("
!");
}
</script>
</head>
<body>
<a href="" onMouseOver="hello()">link</a>
</body>
</html>
--------------------------------------------------------------------------------

使 子。 中, lastModified 法。 服务 期, 间。 果: 是: 20:2 为: 5/13/99 下: 是: 17:5
为: 7/17/2001 中, 数, today= new Date() 成。 话, 间, today 中。 是: today 态, Java 同。 today 後, (object) 使 get... method today 期。 getMonth method 0~11 1 1 12 月。除 外, 下: docStarted= new Date(96,0,13) 年(西 元), 月(但 1), 日。 定, 下: docStarted = new Date(96,0,13,10,50,0) 年、 月、 日, 时、 分、 秒。 後, JavaScript 态, 间, 1 / 1 / 1970 00h ms(milli seconds) 的, 算。

--------------------------------------------------------------------------------

数, JavaScript 的。 法: This is a random number:0.7683139658876457 数; 数, 可! 如: 数(sin 算, 算, 0 1 数。 ms 位, 字。 数,
--------------------------------------------------------------------------------

JavaScript 窗。 窗, HTML 件, JavaScript 游网络(Internet )。 西 去, 看! 程序如 下:


数。 WinOpen() open method 窗。 ("") URL 置。 话, 窗, JavaScript 西! 字, 字, 白, Display Window 便 息, 意。 (properties) (toolbar) (scrollbar) 等, 如: toolbar = yes 列。 性, 白: toolbar location directories status menubar scrollbars resizable copyhistory width=pixels height=pixels pixels 分, 值, 小。 窗, msg 後, 西 了。 HTML 字。也 说, 使 form 了!
--------------------------------------------------------------------------------
错。 JavaScript 成, 动, 行, JavaScript 後, 的!



JAVASCRIPT
特效应用实例

如果你需要打开一页面时自动打开一个新窗口,只要在你的html文件的<head></head>之间加入下面这段原代码:

<SCRIPT LANGUAGE=JavaScript>window.open("xxx.htm"); </script>
其中xxx.htm是你想进入页面的路径

由于IENetscape的某些不兼容,使得主页制作出来后在两者中有较大差别,有的甚至不能使用。为便于浏览,最佳的方法就是先测试浏览器类型,再调用相应的页面。
它的做法就是

第一步,将下列代码加入<head></head>之间:

<SCRIPT LANGUAGE="JavaScript">
function TestBrowser(){
ie = ((navigator.appName == "Microsoft Internet Explorer") &&(parseInt(navigator.appVersion) >= 3 ))
ns = ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) >= 3 ))

if (ns) {
setTimeout('location.href="indexns.html"',5);
} else {
setTimeout('location.href="indexie.html"',5);
}
}
</script>

第二步,修改<body>行为:
<body onLoad="TestBrowser()">

  这样过五秒钟后若检测到用户使用浏览器为Netscape则调用indexns.html,否则调用indexie.html 其中时间和文件名可以更改为你自己的。

 

--------------------------------------------------------------------------------

如何在页面上显示日期和时间

  例子1
现在是: 07/17/2001 17:22:22 现在是: 11/12/1999 01:19:13

原代码如下,只要copy下来,放入<body>中就可以了。

<script language="JavaScript"><!--
now = new Date()
hour = now.getHours()
if (hour < 12) {
document.write("
现在是: " + now.toLocaleString())
} else if (hour < 18){
document.write("
现在是
: " + now.toLocaleString())
} else if (hour >= 18) {
document.write("
现在是
: " + now.toLocaleString())
}
// --></script>
上面这个在低版本浏览器里看不见


例子2

今天是 2001 7 17 星期二


今天是 99 11 12 星期五



原代码如下,只要copy下来,放入<body>中就可以了。
<script language="JavaScript"><!--
var enabled = 0; today = new Date();
var day; var date;
if(today.getDay()==0) day = "
星期日"
if(today.getDay()==1) day = "
星期一
"
if(today.getDay()==2) day = "
星期二
"
if(today.getDay()==3) day = "
星期三
"
if(today.getDay()==4) day = "
星期四
"
if(today.getDay()==5) day = "
星期五
"
if(today.getDay()==6) day = "
星期六
"
document.fgColor = "000000";
date = "
今天是 " + (today.getYear()) + " " + (today.getMonth() + 1 ) + " " + today.getDate() + "
" + day +"";
document.write("<CENTER><TABLE BORDER=2 BGCOLOR=000000><TH><FONT COLOR=ffffff>")
document.write("<CENTER>" + date.fontsize(3) + "</CENTER>");
document.write("</FONT></TH></TABLE></center><P>")// -->
</script>


例子3
192001
717 星期二 5:22pm 19991112 星期五 1:19am

原代码如下,只要copy下来,放入<body>中就可以了。

<script language="JavaScript"> <!---
today=new Date();
var hours = today.getHours();
var minutes = today.getMinutes();
var seconds = today.getSeconds();
var timeValue = "<FONT COLOR=black>" + ((hours >12) ? hours -12 :hours); timeValue += ((minutes < 10) ? "<BLINK><FONT COLOR=black>:</FONT></BLINK>0" : "<BLINK><FONT COLOR=black>:</FONT></BLINK>") + minutes+"</FONT></FONT>";
timeValue += (hours >= 12) ? "<FONT COLOR=blue><I><B>pm</B></I></FONT>" : "<FONT COLOR=blue><B><I>am</I></B></FONT>";
function initArray(){
this.length=initArray.arguments.length
for(var i=0;i<this.length;i++)
this[i+1]=initArray.arguments[i] }
var d=new initArray("<font color=RED>
星期日","<font color=black>星期一","<font color=black>星期二","<font color=black>星期三","<font color=black>星期四","<font color=black>星期五","<font color=GREEN>星期六"); document.write("<font color=black>19<font color=black>",today.getYear(),"<font color=red>","<font color=black>",today.getMonth()+1,"<font color=red>","<font color=black>",today.getDate(),"<font color=red> </FONT>",d[today.getDay()+1]," ",timeValue); //--></script>
 


--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

自动识别浏览器

  您的浏览器是: Microsoft Internet Explorer 4.0 (compatible; MSIE 4.01; Windows 98)

实现这个功能的原代码如下:
<script language="JavaScript"><!--
document.write("<CENTER>
您的浏览器是: " +navigator.appName + " " + navigator.appVersion +"<CENTER>")
// --></script>

将其放入html里就可以了。(此程序对netscape3.x无效)
--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

一条一条显示信息的跑马灯




将下面的代码放如<head></head>之间
<script language="javascript">
<!--
function makearray(size)
{
this.length=size;
for(i=1;i<=size;i++)
{
this[i]=0
}
return this;
}
msg=new makearray(3)
msg[2]="
嗨!您好。看见了吗?"
msg[1]="
您可根据自己的需要显示不同的内容!
";
msg[3]="
可在这个窗口内显示最新信息!
"
interval = 100;
seq = 0;
i=1;
function Scroll() {
document.tmForm.tmText.value = msg[i].substring(0, seq+1);
seq++;
if ( seq >= msg[i].length ) { seq = 0 ;i++;interval=900};
if(i>3){i=1};
window.setTimeout("Scroll();", interval );interval=100
} ;
//-->
</script>

将下面的代码放入<body></body>之间需要的地方:
<form name="tmForm">
<p><input type="Text" name="tmText" size="40"> </p>
</form>
<body>语句里更改为:

<body OnLoad="Scroll() >

有关参数可以自己修改,感兴趣的快Save本页,回去试试!

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

自动滚屏

  注意:
这是一页滚屏的测试页。
不是采用常见的java.class程序来实现的
也不是动态Dhtml语言
只是用简短的javascript脚本语言
它的优点在于速度快,制作简单。
您可以下载以下的原代码,
设计到您的主页里试试!
原代码如下,把它放在html<head></head>之间。

<script language="JavaScript">
<!--
locate = 0;
function scroller() {
if (locate !=500 ) {
locate++;
scroll(0,locate);
clearTimeout(timer);
var timer = setTimeout("scroller()",3);
timer;
}
}
// -->
</script>

修改<body>语句为:

<body OnLoad="Scroller()">

可通过改动locate的数值来控制显示页面的长度(原代码中为locate!=600)。将"setTimeout("scroller()",3);"中的"3"改为其它的数字可控制速度。
--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

上下翻页




按一下下面的按钮试试:
实现方法,只要将下列代码放入<body>中就可以了。

<form method="post">
<p><input type="button" value="
上一页" onclick="history.go( -1 );return true;"><input type="button" value="下一页" onclick="history.go( 1 );return true;"></p>
</form>


虽然简单,可是很实用!
注:这里介绍的"下一页"按钮是指调用已浏览过的页面,功能和浏览器里的forword
一样。而本页头上的"下一页"则是next的意思。

代码如下:

<form method="post">
<p><input onclick="top.location='../index.html';" type="button" value="
下一页
"></p>
</form>
其中location=''之间的文件名就是你要链接的文件。





--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

停留时间:

 
将下列原代码加入html<head></head>之间:

<script language="JAVASCRIPT">
<!--
var ap_name = navigator.appName;
var ap_vinfo = navigator.appVersion;
var ap_ver = parseFloat(ap_vinfo.substring(0,ap_vinfo.indexOf('(')));

var time_start = new Date();
var clock_start = time_start.getTime();
var dl_ok=false;

function init ()
{
if(ap_name=="Netscape" && ap_ver>=3.0)
dl_ok=true;
return true;
}

function get_time_spent ()
{
var time_now = new Date();
return((time_now.getTime() - clock_start)/1000);
}

function show_secs () // show the time user spent on the side
{
var i_total_secs = Math.round(get_time_spent());
var i_secs_spent = i_total_secs % 60;
var i_mins_spent = Math.round((i_total_secs-30)/60);
var s_secs_spent = "" + ((i_secs_spent>9) ? i_secs_spent : "0" + i_secs_spent);
var s_mins_spent = "" + ((i_mins_spent>9) ? i_mins_spent : "0" + i_mins_spent);
document.fm0.time_spent.value = s_mins_spent + ":" + s_secs_spent;
window.setTimeout('show_secs()',1000);
}

// -->
</script>

修改<body>语句为:

<BODY onLoad="init(); window.setTimeout('show_secs()',1);">

将下列原代码加入<body></body>之间:

<FORM name="fm0" onSubmit="0"><FONT COLOR="#6060FF">停留时间:
</FONT><INPUT type="text" name="time_spent" size=7 onFocus="this.blur()"></FORM>


--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

访客登记

  您好 null,您是第 0 次访问本主页. 最后一次是 Thu, Jan 1 0 at 8:00:. [按此改名]

将下列代码加入<head></head>之间:

<script language="JavaScript">
<!-- Hide this script from old browsers --
var expDays = 30;
var exp = new Date();
exp.setTime(exp.getTime() + (expDays*24*60*60*1000));
function Who(info){
var VisitorName = GetCookie('VisitorName')
if (VisitorName == null) {
VisitorName = prompt("
请输入姓名:
",'');
SetCookie ('VisitorName', VisitorName, exp);
}
return VisitorName;
} function When(info){
var rightNow = new Date()
var WWHTime = 0;
WWHTime = GetCookie('WWhenH')

WWHTime = WWHTime * 1
var lastHereFormatting = new Date(WWHTime); // Date-i-fy that number
var intLastVisit = (lastHereFormatting.getYear() * 10000)+(lastHereFormatting.getMonth() * 100) + lastHereFormatting.getDate()
var lastHereInDateFormat = "" + lastHereFormatting; // Gotta use substring functions
var dayOfWeek = lastHereInDateFormat.substring(0,3)
var dateMonth = lastHereInDateFormat.substring(4,11)
var timeOfDay = lastHereInDateFormat.substring(11,16)
var year = lastHereInDateFormat.substring(23,25)
var WWHText = dayOfWeek + ", " + dateMonth + " at " + timeOfDay // display
SetCookie ("WWhenH", rightNow.getTime(), exp)
return WWHText;
}
function Count(info){
var WWHCount = GetCookie('WWHCount')
if (WWHCount == null) {
WWHCount = 0;
}
else{
WWHCount++;
}
SetCookie ('WWHCount', WWHCount, exp);
return WWHCount;
}
function set(){
VisitorName = prompt("??????",'');
SetCookie ('VisitorName', VisitorName, exp);
SetCookie ('WWHCount', 0, exp);
SetCookie ('WWhenH', 0, exp);
}
function getCookieVal (offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}
function GetCookie (name) {
var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen) {
var j = i + alen;
if (document.cookie.substring(i, j) == arg)
return getCookieVal (j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
function SetCookie (name, value) {
var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (argc > 2) ? argv[2] : null;
var path = (argc > 3) ? argv[3] : null;
var domain = (argc > 4) ? argv[4] : null;
var secure = (argc > 5) ? argv[5] : false;
document.cookie = name + "=" + escape (value) +
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
((path == null) ? "" : ("; path=" + path)) +
((domain == null) ? "" : ("; domain=" + domain)) +
((secure == true) ? "; secure" : "");
}
function DeleteCookie (name) {
var exp = new Date();
exp.setTime (exp.getTime() - 1);
// This cookie is history
var cval = GetCookie (name);
document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}
// -- End Hiding Here -->
</script>
将下列原代码加入<body></body>之间:

<script language="JavaScript">
<!-- Hide this script from old browsers --
document.write("
您好 <b>" + Who() + "</b>,您是第 <b>" + Count() + "</b> 次访问本主页. 最后一次是 <b>" + When() +"</b>. ")
document.write('<a href="JavaScript:set()">[
按此改名
]</a>')
// -- End Hiding Here -->
</script>


--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

跑马灯

 

将下列原代码加入<head></head>之间,其中的文字可以改为您需要的语句:
<script language="JavaScript"><!--
var id,pause=0,position=0,revol=9;
function banner() {
var i,k;
var m1="
欢迎光临《初学者园地》 ! 希望您能在这里找到自己需要的东东。";
var m2="
如果您觉得本站可以一看,请帮忙告诉您的朋友们,谢谢!
";
var msg=m1+m2;
var speed=10;
document.isnform.banner.value=msg.substring(position,position+160);
if(position++==msg.length) {
if (revol--< 2) return;
position=0;
}
id=setTimeout("banner()",2000/speed);
}
function navigator(isnform) {

durl=(isnform.isnlist.options[isnform.isnlist.selectedIndex].value)

location.href=durl

}
// --></script>

将下列原代码加入<body></body>之间
<form method="POST" name="isnform">
<dl>
<dd align="center"><input type="text" size="48" maxlength="256" name="banner"> </dd>
</dl>
</form>
  

修改<body><body onload="banner()">



--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

最后更新日期

  最后更新日期:05/13/2000 17:21:46
最后更新日期:08/07/99 05:59:56

就一句话:
<script>
document.write("
最后更新日期:"+document.lastModified+"<p>")
</script>

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

禁止查看原代码

 
  可能你看到某些好的网页效果。却发现不允许你查看原代码,是如何实现的呢?

只要在<head></head>之间加入下面这段代码就可以了:(可以用鼠标右键试试)

<SCRIPT language=javascript>
function click() {
if (event.button==2) {
alert('
对不起,禁止使用此功能
^_^.')
}
}
document.onmousedown=click
</SCRIPT>

  对这种办法并不推荐,因为如果真正想看你原代码的话,方法还是很多的:)

--------------------------------------------------------------------------------

--------------------------------------------------------------------------------

问候语

 
"
这么晚还不休息? 小心身子。
"
将下列代码加入<head></head>之间:

<script language="JavaScript">
<!--
d=new Date();
hour=d.getHours();
if (hour < 5) //
代表零时至五时
{ document.write("
 "这么晚还不休息? 小心身子。"")}
else if (hour < 8) //
代表五时至八时

{ document.write("
 "早上好! 这么早就上网?我可能还在睡呢!"")}
else if (hour < 11)
{ document.write("
 "上午好! 你正在工作吗
?"")}
else if (hour < 12)
{ document.write("
 "吃饭了吗?别饿坏身子,身体是革命的本钱
!"")}
else if (hour < 14)
{ document.write("
 "下午总是容易犯困! 快睡着了
.....zzzZZZ."")}
else if (hour < 17)
{ document.write("
 "下午好! 提前下班了?
!!"")}
else if (hour < 19)
{ document.write("
 "今天晚上你有什么节目吗?
"")}
else if (hour < 21)
{ document.write("
 "晚上好! 欢迎你常来这里
!"")}
else if (hour < 23)
{ document.write("
 "晚上好! 可别玩得太晚。
"")}
else if (hour >= 23)
{ document.write(" "
夜深了,早些休息吧
!"")}
//-->
</script>

  文档下载

标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commentauthor}
{commentauthor}
{commenttime}
{commentnum}
{commentcontent}
作者:
{commentrecontent}