引子
q去Qh们对于Javascript一直报着轻视的态度Qh们认为它又慢又容易出错,而且在不同浏览器中解释也不一P但是现在QJavascript确实实的在改变我们的网l,来多的网l和APP应用开始用Javascript。今天,我们来讲讲我们Z么会有这U观念,回顾Javascript的历史来诊断他的现状Q同旉过一些片D|表明Javascript同其他开发语a的本质不同,唯有如此我们才能明白ZJavascriptq么重要?/p>
早期的迷?/strong>
从某U程度上来讲QJavascript是Java的恶兄?Java’s evil twin)。他们同岁,都于1995q以Beta的版本出玎ͼq且都在ơ年1996q推Z1.0版本。在语法上他们也很相q,从名UC来看他们像是一家h一栗?br />
我们W一ơ听说Javascript是在1995q_当时Netscape推出了Navigator 2.0的Beta版本Q这个版本中没有包含JavascriptQ但是有对于Java Applet的支持。同ӞNetscape 宣布面内嵌的语aLiveScript?br />
q个声明q没有引起太多的注意Q在当时Java Applet是一个热门的技术,当时对于Z么Netscape要在览器中内嵌两种语言也不是十分清楚,N有什么事情LiveScript能做而Java做不了的?
2个月以后QLiveScript看到了曙光,在Navigator 2.0B3中,它被重新命名为JavaScript。这ơ改动吸引了众多人的x?#8220;OhQ他肯定不能体现他的价倹{?#8221;?#8220;Z么Sun要让q么个玩h搭Java的RQ?#8221;我至今仍Zؓq次改名是一个失败的LQ因Z引v了无的困惑Q很多非~程人员从来都没有明白过Java和Javascript是两个不同的东西?br />
改名字的另外一个媄响是l微的,但是我认为改善了q个语言的接受程度。与Java的关pMɘq门语言看v来ƈ不是一个全新的东西。事实上Q当时Java本n都还不是十分成熟Q也q没有到1.0Q但是外界对于Java成熟状况的认知要比本w高出很多。例如,?995q_时代杂志Java选ؓ当年的十大新产品之一。同Ӟ市面上已l有很多关于Java的书c。所以,当Netscape这Ҏ术命名ؓJavaScriptQ其意图很明昑ְ是表明当时的Java开发团体是使用和评价JavaScript的最佳h选?br />
在怀疑的潮中,凭借JavaScript与Java Applet的通信和控制能力,JavaScript开始出现在一些应用中。所以,那些对Java感兴的人开始觉得有了学习JavaScript的必要?br />
Javascript像一个玩P它是面向对象的,所有的东西都是公有的,没有装。另外,你无法创建真正的子类Q在实例变量和方法之间ƈ没有真正的区别,q就像一个灾难。你可以在Q何时候将一个变量变成一个方法。在q方面我q不是孤独的Q虽然对于面向对象的l节每个人的理解都有所不同Q但是JavaE序员几乎无一例外的认为,JavaScriptq不是一门严肃的~程语言Q我们也不像用它来做些什么?/p>
附加的伤?/strong>
在早期的时候,JavaScriptq没有什么真正的技术问题,它是~慢又充满风险的Qƈ且只在Netscape下工作。后来IE也支持了Q但q不是完全兼宏Vh们吹捧他用来~写面的appletsQ但是它q不能检applet的失败。它从来没有被广泛的使用q,很快他就成ؓ了一个分母,Z仅仅用它来完成那些可靠的dQƈ且避免在其他的地方用?br /> 什么是JavaScript能够可靠的支持的Q闪动的、基于图像的视觉效果。h们开始制造一些炫目的效果。Netscape引导了这个趋势,在页面中使用令h生厌的图层干CZҎ常内容的览。那些各U各样闪动、滚动的效果让我们认个标{直就是网l的原罪。到处都充斥着闪动的Banner、滚动的Banner、状态栏里蟩动的文字、随时可能弹出的对话框?#8230;各种各样的滥用还在不断l。Miscorsoft也开始谈论DHTMLQ但是不久DHTML变成了Buggy、Slow、Unmaintable|站的代名词?br /> 对了Q不要忘记安全问题。一般来Ԍ当你构徏一个图灵完?Turing-Complete)的编E语aӞ你就需要特别小心安全问题。Netscape做的不够好,早期的Javascript中存在漏z,而且׃很长旉才完全解x?br /> l果是什么?很多的有技术头脑的用户关闭了浏览器的Javascript支持。要知道Q在1996q的时候可以被UCؓ?#8220;技术头脑(Technically Savvy)”的h员站的比重相当的高。所以,q些Z不再依赖于JavaScriptQ因会导致用户不使用你的|站?br /> 那些使用JavaScript的用户做的也不够好。那些严谨的E序员完全抛弃了JavaScriptQ但是设计师和页面h员补充了q来。早期的书籍中都提供了糟p的JavaScript实例Q但是很去从语义上对它q行分析、阐q。(David Flanagan是个例外Q让事情更糟p的是,有些人(也许是大多数人)Ҏ没从书中学习过JavaScriptQ他们只是从一个网站现有的代码中拷贝,修改Q然后粘贴到自己的网站上让它工作Q到最后都不知道ؓ何这些代码能够正常运行?br /> 即大家都是从例子开始学习JavaScriptQ只要保证两件事情这也许会成Z个很好的{略。第一个就是大安学习好的例子Q但昄JavaScriptq不属于q种情况。第二种情况是q种语言应该和学习它的h所知道的另外一U语a怼Q但是很不幸Q虽然JavaScript从语义上看来和Java非常相近Q但实际上JavaScript来自一个和Java完全不同的编E语a家族。JavaScript是NewtonScript、Self、Smalltalk…和Lisp语言的一个直pd裔。Waldemar HorwatQ一位在JavaScript早期产生重大影响的工Eh员说Q我更愿意把JavaScript认ؓ是Common Lisp的另一UŞ式。这个说法有些夸张,但是如果你知道这两种语言Q你׃很容易发C者之间确实存在很多相g处?br /> 所以状况就变的来不好,一门与之前q泛传播的语a有很大不同的新语aQ被一些没有经验的~程者推q,其他的编Eh员Follow了他们的例子。更多的用户Z安全考虑关闭了JavaScript的支持,q有有经验的E序员推荐大安免用JavaScript?br /> 上面的这些还不够Q浏览器大战g一触即发,儿JavaScript被选作了一U武器。战争中的双斚w不断的发展JavaScriptQ有时候甚x意引入了很多不兼容特性。JavaScript此时已经变得更庞大,但同时也更容易引起问题?br /> 也难怪没有h会喜Ƣ她?/p>
帝国的重?/strong>
在那D|_我还是不断听到更多关于JavaScript的消息。关于基于prototype和面向对象的Ҏ的介绍L让我很好奇,我曾l看到过的教材里从来没有提到q这些,也许是作者本Z没有必要的语a背景dq些概念联系h。同ӞZ开始指出由于浏览器造成了多错误,而不是JavaScript本n?br /> 后来QIE赢了QNetscape投降了,q一阶段的浏览器大战l束了。Miscrosoft开始将他们的bug光芒覆盖到CSS领域QQ何处理过IE6下页面开发的工程师都应该深有感受Q,而Mozila的团队则开始认真的考虑兼容性的问题。除了一些根p固的区别Q想要修改他们必d量的修改源码Q这个小l修复大多数的不同,于是IE和Mozilla/Firefox下的JavaScript变得更可控了。其他的开发者也更加的有q可循?br /> JavaScript和浏览器的内|支持开始进入了一D늨固的发展时期。在我们大家都忙着写自qJavaScript代码的时候,几乎没有人注意到一个具有传奇色彩的Ҏ引?XMLHttpRequest。最重要的DHTMLҎ,Ajax的重要部分,悄悄的加入到了IE中来。Microsoft的Outlook组引入了这个ActiveX控g来Outlook支持|络讉K?00q的Ajax Experience的大会上QDion Almaer和Ben Galbraith做了很多关于XMLHttpRequest的工作,但是在MozillaW一ơ引入XMLHttpRequest支持的时候的官方文g中,他的Ҏ根本就没有提到?br /> 那段旉有很多JavaScript的活动,在JavaScript的支持下QMacromedia为Flash提供了脚本语a支持。Adobe也在不断努力使他们的很多E序可以使用JavaScript来控制和扩展。AppleJavaScript嵌入了它的Sherlock应用中。当ӞMozilla目也做Z一个重要决定,他们大部分的览器都可以支持JavaScript。很明显QJavaScript已经不再仅仅是一个网语aQ而成ZE序中嵌入的动态的、运行时扩展的编E语a的首选。其中的原因也许是当时大家或多或的都会一些JavaScriptQ还有当时存在两个高质量的嵌入扩展(SpiderMonkey c语言~写QRhino Java语言~写Q?/p>
?000q的时候,一些hQ著名的Brent Ashley、Alex Russell、Douglas CrockfordQ开始注意到JavaScriptI竟能做什么。Brend开始研IJavaScript与服务器通信的方法,提出了我们现在公认的Ajax Style。而且在当时浏览器对于XMLHttpRequest支持不是很完善的时候,他增加或者Ş成了很多完成q项处理的很多y妙的Ҏ。他建立了一个网?#8220;Remote Scripts Resources”Qƈ且编写了一个JavaScript Remote Scripting (JSRS)库来支持不同览器的兼容性?br /> Alex Russel建立了一个netWindow目Q意囑־立一个支持富UI、可~程、图形环境的|页Q同时带有完全可拖动的窗口和其他组ӞnetWindows变成了nWigetsQƈ且最l催生了Dojo ProjectQ一个当前重要的Ajax框架?br /> Douglas Crockford一直在研究JavaScript语言的丰富性,最后他发布了一pd有徏设性的文章Q例如:The World’s Most Misunderstood Programming LanguageQ在q些文章中,他指ZJavaScript在用中的一些技巧和一些缺炏V?br /> Brent、Alex和Doug当时的声音都很薄弱,像旷野中的呼声Q但是当最后其他的Web开发社区准备将注意力投向JavaScript的时候,他们所作的q些工作让我们的生活变得更加单了?br /> 我在2000q到2003q中D늚时候,对于JavaScript的关注都只是一些零星的片段Q我实没有投入太多的关注,我沉在Java的乐土中Q闲暇的时候研I一下RubyQ而正是这D늻历ؓ我再一ơ的认识JavaScript提供了准备?br /> ?003q的6月,我的朋友l我演示了netWindowsQ当我从地板上捡h的下巴来以后QAfter i pick my jaw up off the floorQ作者还真是q默Q,我朋友告诉我说Alexq个Z是疯子,我如梦方醒开始认真的研究JavaScriptQ现在看来,当时Google也有一帮h在做同样的事情?/p>
伟大的革?/strong>
每个看这文章的人都应该知道一些AjaxW一ơ引爆屏q的情景Q今天我来简短的说一些完整的情节?/p>
W一个引h注意的Ajax应用是Gmail。很明显Q他先是下蝲了很多的JavaScriptQ然后在后台不断C服务器进行通信Q避免页面的h。他实lh非常q印象Q同时也l其他的技术团队带来不知所措的感觉。我当时在想Google一定是有一个非常成熟的定制化工h开发如此复杂的客户/服务器端理?br /> 真正让我明白的是Google的Google Suggest。现在的Z定很熟悉Q当我们输入的时候,通过与服务器的交互将我们可能需要的词条昄出来供我们选择?br /> Google Suggest在两个方面让我印象深刻,W一是他是如此简单以至于大多数的技术h员都能够明白他的工作原理q且应用到自q|络目中;另外一个是Google Suggest针对用户的每ơkeyup事gq行相应和通信Q让我看到同服务器通信是如此的单,我完全被折服了?br /> 不久以后又袭来了Google MapsQJess James Garret形成了Ajaxq个术语Q从此以后讨论变得更加方ѝ?br /> 从此以后QAjax变成了我们处理网l应用的的标准方法。而且现在我们有了更多的工具和W三方库选择Q但我们又陷入另一个难题:选择太多了?/p>
停止担心Q爱上DOM
我已l阐明了Z么JavaScript有这个名声的众多原因Q其中有好的也有坏的Q在q众多的原因中,我只想重复一条,他是如此重要Q能够解释ؓ什么很多有l验的程序员l给被自ql验所蒙蔽?br />
q一部分作者以一个例子来说明了JavaScript的编写方式和Java是多么的不同Q最后提Z一些有意义的ȝQ?br />
Functions are first-class objects.
Methods are just functions attached to objects.
You can add methods to classes at any time (even after instances have been created).
Individual objects can have their own methods.
“Class constructors” are just functions.
Functions, being objects, can have their own properties.
You can call functions with fewer (or more) arguments than the function is declared to take.
If no value is passed for a function argument, it gets the value undefined.
ȝ
最后让我们每一位JavaScript开发者来正确的认识JavaScriptQ用它来完成他应当完成的d?/p>
Ajax is a gateway drug for JavaScript.
[参考资料]
1、Learn To love Javascript http://vanderburg.org/Writing/LearningToLoveJavaScript/
2、NewtonScript http://en.wikipedia.org/wiki/NewtonScript
3、Java In Best Top Ten of 1995 http://www.time.com/time/magazine/article/0,9171,983903,00.html
<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> <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> W一个框?br /> 主要作用是显C标题文档?br /> Test9_1.htm <HTML> <HEAD> </HEAD> <H2>使用框架实现WEB交互</H2> </HTML> |
<HTML> <HEAD> </HEAD> <Body> <Form name="test9_1"> 请选择城市Q?lt;BR> <Select name="select1" Multiple> <Option>云南?br /> <Option>四川?br /> <Option>贵州?br /> <Option>׃?br /> <Option>江苏?br /> <Option>江?br /> <Option>安徽?br /> <Option>沛_?br /> </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> |
<HTML> <HEAD> </HEAD> <Body> <Form name="test9_2"> 误入用户名Q?br /> <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">所有城?lt;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> |
<form Name=Form1> <INPUT type=text...> <Input type=text...> <Inpup byne=text...> </form> <form Name=Form2> <INPUT type=text...> <Input type=text...> </form> |
<Form Name ="表的名称" Target ="指定信息的提交窗? action ="接收H体E序对应的URL" Method =信息数据传送方?get/post) enctype ="H体~码方式" [onsubmit ="JavaScript代码"]> </Form> |
<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> |
<Form name="test"> <input type="button" name="testcall" onclick=tmyest()> </form> ... <script language="javascirpt"> document.elements[0].value="mytest"; //通过元素讉K ?br /> document.testcallvalue="mytest"; // 通过名字讉K </script> ..... |
<html> <head> <Script Language="JavaScript"> //原来的颜?br /> document.bgColor="blue"; document.vlinkColor="white"; document.linkColor="yellow"; document.alinkcolor="red"; //动态改变颜?br /> function changecolor(){ document.bgColor="red"; document.vlinkColor="blue"; document.linkColor="green"; document.alinkcolor="blue"; } </script> </HEAD> <body bgColor="White" > <A href="test8_2.htm"> 调用动态按钮文?lt;/a> <form > <Input type="button" Value="red" onClick="changecolor()"> </form> </BODY> </HTML> |
<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=" q里输入你要的内?;// 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"> q回</a> </BODY> </HTML> |
<HTML> <Head> <script languaga="JavaScript"> Var test=window.prompt("误入数?"); document.write(test+"JavaScript输入输出的例?); </script> </Head> </HTML> |
??/font> |
讑֮?/font> |
??/font> |
toolbar |
yes/no |
建立或不建立标准工具?/font> |
location |
yes/no |
建立或不建立位置输入字段 |
directions |
yes/no |
建立或不建立标准目录按钮 |
status |
yes/no |
建立或不建立状态条 |
menubar |
yes/no |
建立或不建立菜单?/font> |
scrollbar |
yes/no |
建立或不建立滚动?/font> |
revisable |
yes/no |
能否改变H口大小 |
width |
yes/no |
定H口的宽?/font> |
Height |
yes/no |
定H口的高度?/font> |
<HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY> <Script Language ="JavaScript"> alert("q是一个JavaScript试E序"); </Script> </BODY> </HTML> |
<HTML> <HEAD> <TITLE></TITLE> </HEAD> <BODY> <Script Language="JavaScript"> <!-- Hide From Other Browsers document.write("<H1>有关交互的例?); my=prompt("误入数?"); document.write(my+"</H1>"); document.close(); // Stop Hiding from Other Browsers--> </Script> </BODY> </HTML> |
<html> <form name="myform"> <td vAlign="top" width="135">您在此停留了Q?br /> <input name="clock" size="8" value="在线旉"></td> </form> <script language="JavaScript"> var id, iM = 0, iS = 1; start = new Date(); function go() { now = new Date(); time = (now.getTime() - start.getTime()) / 1000; time = Math.floor( time); iS = time % 60; iM = Math.floor( time / 60); if ( iS < 10) document.myform.clock.value = " " + iM + " ?0" + iS + " U?; else document.myform.clock.value = " " + iM + " ?" + iS + " U?; id = setTimeout( "go()", 1000); } go(); </script> </body> </html> |
U1=New university(“云南?#8221;Q?#8220;昆明?#8221;Q?January 05,199712:00:00","http://www.YN.KM") U2=New university(“云南电子U技大学”Q?#8220;昆明”,"January 07,1997 12:00:00","htlp://www.YNKJ.CN") |
<html> <head> <title></title> <script LANGUAGE="JavaScript"> with (top.window.location) {baseURL = href.substring (0,href.lastIndexOf ("/") + 1)} total_toc_items = 0; current_overID = ""; last_overID = ""; browser = navigator.appName; version = parseInt(navigator.appVersion); client=null; loaded = 0; if (browser == "Netscape" && version >= 3) client = "ns3"; function toc_item (img_name,icon_col,width,height) { if (client =="ns3") { img_prefix = baseURL + img_name; this.icon_col = icon_col; this.toc_img_off = new Image (width,height); this.toc_img_off.src = img_prefix + "_off.gif"; this.toc_img_on = new Image (width,height); this.toc_img_on.src = img_prefix + "_on.gif"; } } function new_toc_item (img_name,icon_row,width,height) { toc_item [img_name] = new toc_item (img_name,icon_row,width,height); } function toc_mouseover (itemID) { if (client =="ns3") { current_overID = itemID; if (current_overID != last_overID) { document [current_overID].src = toc_item [current_overID].toc_img_on.src; if (last_overID != "") { document.images [last_overID].src = toc_item[last_overID].toc_img_off.src; } last_overID = current_overID; } } } function toc_mouseout () { if (client =="ns3") { if (current_overID != "") { document.images [current_overID].src = toc_item [current_overID].toc_img_off.src; } current_overID = ""; last_overID = ""; } } new_toc_item ("1",2,120,20); <!-- Begin function bannerObject(p){ this.msg = MESSAGE this.out = " " this.pos = POSITION this.delay = DELAY this.i = 0 this.reset = clearMessage} function clearMessage(){ this.pos = POSITION} var POSITION = 50; var DELAY = 150; var MESSAGE = "q是一个动态JavaScript文字昄的例?; var scroll = new bannerObject(); function scroller(){ scroll.out += " "; if(scroll.pos>0) for (scroll.i = 0; scroll.i < scroll.pos; scroll.i++) { scroll.out +=" " ; } if (scroll.pos>= 0) scroll.out += scroll.msg else scroll.out = scroll.msg.substring(-scroll.pos,scroll.msg.length) document.noticeForm.notice.value = scroll.out scroll.out = " "; scroll.pos--; scroll.pos--; if (scroll.pos < -(scroll.msg.length)) { scroll.reset(); } setTimeout ('scroller()',scroll.delay);} </script> </head> <body onload="scroller()" bgcolor="#000000" link="#C0C0C0" vlink="#C0C0C0" alink="#008080" text="#C0C0C0"> <table border="0" cellspacing="0" cellpadding="0"> <tr> <td width="100%"><form NAME="noticeForm"> <p><input TYPE="text" name="notice" size="40" style="background-color: rgb(192,192,192)"></p> </form> </td> </tr> </table> </center></div> </body> </html> |
<html> <head> <script> <!-- function makearray(n) { this.length = n; for(var i = 1; i <= n; i++) this[i] = 0; return this;} hexa = new makearray(16); for(var i = 0; i < 10; i++) hexa[i] = i; hexa[10]="a"; hexa[11]="b"; hexa[12]="c"; hexa[13]="d"; hexa[14]="e"; hexa[15]="f"; function hex(i) { if (i < 0) return "00"; else if (i > 255) return "ff"; else return "" + hexa[Math.floor(i/16)] + hexa[i%16];} function setbgColor(r, g, b) { var hr = hex(r); var hg = hex(g); var hb = hex(b); document.bgColor = "#"+hr+hg+hb;} function fade(sr, sg, sb, er, eg, eb, step) { for(var i = 0; i <= step; i++) { setbgColor( Math.floor(sr * ((step-i)/step) + er * (i/step)), Math.floor(sg * ((step-i)/step) + eg * (i/step)), Math.floor(sb * ((step-i)/step) + eb * (i/step))); }} function fadein() { fade(255,0,0,0,0,255,100); fade(0,0,255,0,255,0,100); fade(0,255,0, 0,0,0, 100);} fadein(); // --> </script> <body> </body> </html> |
Function showData(object) for (var X=0; X<30;X++) document.write(object[i])Q?br /> |
Function showData(object) for(var prop in object) document.write(object[prop])Q?br /> |
university.Name=“云南?#8221; university.city=“昆明?#8221; university.Date="1999" |
university[0]=“云南” university[1]=“昆明?#8221; university[2]="1999" |
function showunievsity(object) for (var j=0;j<2; j++) document.write(object[j]) |
Function showmy(object) for (var prop in this) docament.write(this[prop]); |
university["Name"]=“云南” university["City"]=“昆明?#8221; university["Date"]="1999" |
<html> <head> <style TYPE="text/css"> <style> </style> <title>旉</title> <script LANGUAGE="JavaScript"> function showClock() { } function hideClock() { } var timerID = null var timerRunning = false function stopClock() { if(timerRunning) clearTimeout(timerID); timerRunning = false document.clock.face.value = ""; } function showTime() { var now = new Date(); var year = now.getYear(); var month = now.getMonth() + 1; var date = now.getDate(); var hours = now.getHours(); var mins = now.getMinutes(); var secs = now.getSeconds(); var timeVal = ""; timeVal += ((hours <= 12) ? hours : hours - 12); timeVal += ((mins < 10) ? ":0" : ":") + mins; timeVal += ((secs <= 10) ? ":0" : ":") + secs; timeVal += ((hours < 12) ? "AM" : "PM"); timeVal += ((month < 10) ? " on 0" : " on ") + month + "-"; timeVal += date + "-" + year; document.clock.face.value = timeVal; timerID = setTimeout("showTime()", 1000); timerRunning = true } function startClock() { stopClock(); showTime(); } function windowOpener( indexnum ){ var loadpos="date.html"+"#"+indexnum; controlWindow=window.open(loadpos,"date","toolbar=no,location=no, directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes, width=620,height=400"); } </script> </head> <body onLoad="startClock()" > <p align="center"><big><span style="background-color: rgb(45,45,45)"> <font face="Arial">form</font> <font face="宋体">旉</font> </span></big></p> <p align="center"> </p> <div align="center"><center> <table border="0" cellspacing="0" cellpadding="0"> <tr> <td width="100%"><form NAME="clock" onSubmit="0"> <div align="center"><center><p><input TYPE="text" NAME="face" size="20" VALUE style="background-color: rgb(192,192,192)"> </p> </center></div> </form> </td> </tr> </table> </center></div> </body> </html> |
Function function_Name(exp1,exp2,exp3,exp4) Number =function _Name . arguments .length; if (Number>1Q?br /> document.wrile(exp2); if (Number>2) document.write(exp3); if(Number>3) document.write(exp4); ... |
<Form> <Input type="button" Value=“ ” onClick="change()"> </Form> |
<Form> <Input type="text" name="Test" value="Test" onCharge="check('this.test)"> </Form> |
test3_1.htm <HTML> <HEAD> <script Language="JavaScript"> <!-- function loadform(){ alert("q是一个自动装载例?"); } function unloadform(){ alert("q是一个卸载例?"); } //--> </Script> </HEAD> <BODY OnLoad="loadform()" OnUnload="unloadform()"> <a href="test.htm">调用</a> </BODY> </HTML> |
<html> <head> <script language="JavaScript"><!-- // --> function makeArray(n){ this.length=n return this } function hexfromdec(num) { hex=new makeArray(1); var hexstring=""; var shifthex=16; var temp1=num; for(x=1; x>=0; x--) { hex[x]=Math.round(temp1/shifthex - .5); hex[x-1]=temp1 - hex[x] * shifthex; temp1=hex[x-1]; shifthex /= 16; } for (x=1; x>=0; x--) { hexstring+=getletter(hex[x]); } return (hexstring); } function getletter(num) { if (num < 10) { return num; } else { if (num == 10) { return "A" } if (num == 11) { return "B" } if (num == 12) { return "C" } if (num == 13) { return "D" } if (num == 14) { return "E" } if (num == 15) { return "F" } } } function rainbow(text){ var color_d1; var allstring=""; for(i=0;i<text.length;i=i+2){ color_d1=255*Math.sin(i/(text.length/3)); color_h1=hexfromdec(color_d1); allstring+="<FONT COLOR="+color_h1+"ff"+color_h1+">"+text.substring(i,i+2)+"</FONT>"; } return allstring; } function sizefont(text){ var color_d1; var allstring=""; var flag=0; for(i=0,j=0;i<text.length;i=i+1){ if (flag==0) { j++; if (j>=7) { flag=1;}} if (flag==1) { j=j-1; if (j<=0) { flag=0; }} allstring+="<FONT SIZE="+ j + ">" + text.substring(i,i+1) + "</FONT>"; } return allstring; } document.write("<font size=8><CENTER>") document.write("<BR><BR>") document.write( sizefont("q是一个获取WEB览器的E序")) document.write("</CENTER></font>") document.write("览器名U? "+navigator.appName+"<br>"); document.write("版本? "+navigator.appVersion+"<br>"); document.write("代码名字: "+navigator.appCodeName+"<br>"); document.write("用户代理标识: "+navigator.userAgent); </script> <body> </body> </html> |
?
<Script Language ="JavaScript"> JavaScript语言代码Q?br /> JavaScript 语言代码; .... </Script> |
<HTML> <Head> <Script Language ="JavaScript"> document. Write("q是赛_|互动学?); document. close(); </Script> </Head> </HTML> |
![]() ? |
说明: Document. write()是文档对象的输出函数Q其功能是将括号中的字符或变量D出到H口Qdocument. close()是将输出关闭?br /> 可将<Script>...</Script>标识攑օhead>.. </Head>?lt;Body> ...</Body>之间。将JavaScript标识攄<Head>... </Head>在头部之_使之在主和其余部分代码之前装蝲Q从而可使代码的功能更强大;可以JavaScript标识攄?lt;Body>... </Body>M之间以实现某些部分动态地创徏文档?/font> |
<html> <head> <script Language="JavaScript"> var msg="q是一个跑马灯效果的JavaScript文档"; var interval = 100; var spacelen = 120; var space10=" "; var seq=0; function Scroll() { len = msg.length; window.status = msg.substring(0, seq+1); seq++; if ( seq >= len ) { seq = spacelen; window.setTimeout("Scroll2();", interval ); } else window.setTimeout("Scroll();", interval ); } function Scroll2() { var out=""; for (i=1; i<=spacelen/space10.length; i++) out += space10; out = out + msg; len=out.length; window.status=out.substring(seq, len); seq++; if ( seq >= len ) { seq = 0; }; window.setTimeout("Scroll2();", interval ); } Scroll(); </script> <body> </body> </html> |
<html> <head> <Script Language ="JavaScript"> // JavaScript Appears here. alert("q是W一个JavaScript例子!"); alert("Ƣ迎你进入JavaScript世界!"); alert("今后我们共同学习JavaScript知识Q?); </Script> </Head> </Html> |