﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-网络秋天-文章分类-JavaScript</title><link>http://www.blogjava.net/dm520/category/43195.html</link><description>个人学习blog</description><language>zh-cn</language><lastBuildDate>Wed, 23 Dec 2009 06:33:26 GMT</lastBuildDate><pubDate>Wed, 23 Dec 2009 06:33:26 GMT</pubDate><ttl>60</ttl><item><title>是什么让我们爱上Javascript</title><link>http://www.blogjava.net/dm520/articles/307012.html</link><dc:creator>dm520</dc:creator><author>dm520</author><pubDate>Wed, 23 Dec 2009 04:17:00 GMT</pubDate><guid>http://www.blogjava.net/dm520/articles/307012.html</guid><wfw:comment>http://www.blogjava.net/dm520/comments/307012.html</wfw:comment><comments>http://www.blogjava.net/dm520/articles/307012.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dm520/comments/commentRss/307012.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dm520/services/trackbacks/307012.html</trackback:ping><description><![CDATA[<span  style="color: #555555; font-family: 'Lucida Grande', Verdana, Arial, sans-serif; font-size: 14px; ">
<p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 22px; text-indent: 24px; "><strong>引子</strong></p>
<p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 22px; text-indent: 24px; ">过去，人们对于Javascript一直报着轻视的态度，人们认为它又慢又容易出错，而且在不同浏览器中解释也不一样，但是现在，Javascript确确实实的在改变我们的网络，越来越多的网络和APP应用开始使用Javascript。今天，我们就来讲讲我们为什么会有这种观念，回顾Javascript的历史来诊断他的现状，同时通过一些片段来表明Javascript同其他开发语言的本质不同，唯有如此我们才能明白为何Javascript这么重要。</p>
<p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 22px; text-indent: 24px; "><strong>早期的迷惑</strong></p>
<p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 22px; text-indent: 24px; ">从某种程度上来讲，Javascript是Java的恶魔兄弟(Java&#8217;s evil twin)。他们同岁，都于1995年以Beta的版本出现，并且都在次年1996年推出了1.0版本。在语法上他们也很相近，从名称上来看他们就像是一家人一样。<br />
我们第一次听说Javascript是在1995年，当时Netscape推出了Navigator 2.0的Beta版本，这个版本中没有包含Javascript，但是有对于Java Applet的支持。同时，Netscape 宣布页面内嵌的语言LiveScript。<br />
这个声明并没有引起太多的注意，在当时Java Applet是一个热门的技术，当时对于为什么Netscape要在浏览器中内嵌两种语言也不是十分清楚，难道有什么事情LiveScript能做而Java做不了的么?<br />
2个月以后，LiveScript看到了曙光，在Navigator 2.0B3中，它被重新命名为JavaScript。这次改动吸引了众多人的关注。&#8220;Oh，他肯定不能体现他的价值。&#8221;、&#8220;为什么Sun要让这么个玩具来搭Java的车？&#8221;我至今仍人为这次改名是一个失败的主意，因为他引起了无尽的困惑，很多非编程人员从来都没有明白过Java和Javascript是两个不同的东西。<br />
改名字的另外一个影响是细微的，但是我认为改善了这个语言的接受程度。与Java的关系使这门语言看起来并不是一个全新的东西。事实上，当时Java本身都还不是十分成熟，也还没有到1.0，但是外界对于Java成熟状况的认知要比本身高出很多。例如，在1995年，时代杂志将Java选为当年的十大新产品之一。同时，市面上已经有很多关于Java的书籍。所以，当Netscape将这项技术命名为JavaScript，其意图很明显就是表明当时的Java开发团体是使用和评价JavaScript的最佳人选。<br />
在怀疑的浪潮中，凭借JavaScript与Java Applet的通信和控制能力，JavaScript开始出现在一些应用中。所以，那些对Java感兴趣的人开始觉得有了学习JavaScript的必要。<br />
Javascript就像一个玩具，它是面向对象的，所有的东西都是公有的，没有封装。另外，你无法创建真正的子类，在实例变量和方法之间并没有真正的区别，这就像一个灾难。你可以在任何时候将一个变量变成一个方法。在这方面我并不是孤独的，虽然对于面向对象的细节每个人的理解都有所不同，但是Java程序员几乎无一例外的认为，JavaScript并不是一门严肃的编程语言，我们也不像用它来做些什么。</p>
<p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 22px; text-indent: 24px; "><strong>附加的伤害</strong></p>
<p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 22px; text-indent: 24px; ">在早期的时候，JavaScript并没有什么真正的技术问题，它是缓慢又充满风险的，并且只在Netscape下工作。后来IE也支持了，但并不是完全兼容。人们吹捧他用来编写页面的applets，但是它并不能检测applet的失败。它从来没有被广泛的使用过，很快他就成为了一个分母，人们仅仅用它来完成那些可靠的任务，并且避免在其他的地方使用。<br />
什么是JavaScript能够可靠的支持的？闪动的、基于图像的视觉效果。人们开始制造一些炫目的效果。Netscape引导了这个趋势，在页面中使用令人生厌的图层干扰了人们对正常内容的浏览。那些各种各样闪动、滚动的效果让我们认为这个标签简直就是网络的原罪。到处都充斥着闪动的Banner、滚动的Banner、状态栏里跳动的文字、随时可能弹出的对话框、&#8230;各种各样的滥用还在不断继续。Miscorsoft也开始谈论DHTML，但是不久DHTML就变成了Buggy、Slow、Unmaintable网站的代名词。<br />
对了，不要忘记安全问题。一般来讲，当你构建一个图灵完备(Turing-Complete)的编程语言时，你就需要特别小心安全问题。Netscape做的不够好，早期的Javascript中存在漏洞，而且花了很长时间才完全解决掉。<br />
结果是什么？很多的有技术头脑的用户关闭了浏览器的Javascript支持。要知道，在1996年的时候可以被称为有&#8220;技术头脑（Technically Savvy)&#8221;的人员站的比重相当的高。所以，这些人便不再依赖于JavaScript，因为这会导致用户不使用你的网站。<br />
那些使用JavaScript的用户做的也不够好。那些严谨的程序员完全抛弃了JavaScript，但是设计师和页面人员补充了进来。早期的书籍中都提供了糟糕的JavaScript实例，但是很少去从语义上对它进行分析、阐述。（David Flanagan是个例外）让事情更糟糕的是，有些人（也许是大多数人）根据就没从书中学习过JavaScript，他们只是从一个网站现有的代码中拷贝，修改，然后粘贴到自己的网站上让它工作，到最后都不知道为何这些代码能够正常运行。<br />
即使大家都是从例子开始学习JavaScript，只要保证两件事情这也许会成为一个很好的策略。第一个就是大家都学习好的例子，但显然JavaScript并不属于这种情况。第二种情况就是这种语言应该和学习它的人所知道的另外一种语言相似，但是很不幸，虽然JavaScript从语义上看来和Java非常相近，但实际上JavaScript来自一个和Java完全不同的编程语言家族。JavaScript是NewtonScript、Self、Smalltalk&#8230;和Lisp语言的一个直系后裔。Waldemar Horwat，一位在JavaScript早期产生重大影响的工程人员说，我更愿意把JavaScript认为是Common Lisp的另一种形式。这个说法有些夸张，但是如果你知道这两种语言，你就会很容易发现两者之间确实存在很多相似之处。<br />
所以状况就变的越来越不好，一门与之前广泛传播的语言有很大不同的新语言，被一些没有经验的编程者推广，其他的编程人员Follow了他们的例子。更多的用户基于安全考虑关闭了JavaScript的支持，还有有经验的程序员推荐大家避免使用JavaScript。<br />
上面的这些还不够，浏览器大战似乎一触即发，儿JavaScript被选作了一种武器。战争中的双方都不断的发展JavaScript，有时候甚至故意引入了很多不兼容特性。JavaScript此时已经变得更庞大，但同时也更容易引起问题。<br />
也难怪没有人会喜欢她。</p>
<p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 22px; text-indent: 24px; "><strong>帝国的重建</strong></p>
<p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 22px; text-indent: 24px; ">在那段时间，我还是不断听到更多关于JavaScript的消息。关于基于prototype和面向对象的特性的介绍总是让我很好奇，我曾经看到过的教材里从来没有提到过这些，也许是作者本人也没有必要的语言背景去将这些概念联系起来。同时，人们开始指出由于浏览器造成了多少错误，而不是JavaScript本身。<br />
后来，IE赢了，Netscape投降了，这一阶段的浏览器大战结束了。Miscrosoft开始将他们的bug光芒覆盖到CSS领域（任何处理过IE6下页面开发的工程师都应该深有感受），而Mozila的团队则开始认真的考虑兼容性的问题。除了一些根深蒂固的区别，想要修改他们必须大量的修改源码，这个小组修复大多数的不同，于是IE和Mozilla/Firefox下的JavaScript变得更可控了。其他的开发者也更加的有迹可循。<br />
JavaScript和浏览器的内置支持开始进入了一段稳固的发展时期。在我们大家都忙着写自己的JavaScript代码的时候，几乎没有人注意到一个具有传奇色彩的特性引入-XMLHttpRequest。最重要的DHTML特性，Ajax的重要部分，悄悄的加入到了IE中来。Microsoft的Outlook小组引入了这个ActiveX控件来使Outlook支持网络访问。200年的Ajax Experience的大会上，Dion Almaer和Ben Galbraith做了很多关于XMLHttpRequest的工作，但是在Mozilla第一次引入XMLHttpRequest支持的时候的官方文件中，他的特性根本就没有提到。<br />
那段时间有很多JavaScript的活动，在JavaScript的支持下，Macromedia为Flash提供了脚本语言支持。Adobe也在不断努力使他们的很多程序可以使用JavaScript来控制和扩展。Apple将JavaScript嵌入了它的Sherlock应用中。当然，Mozilla项目也做出了一个重要决定，他们大部分的浏览器都可以支持JavaScript。很明显，JavaScript已经不再仅仅是一个网页语言，而成为了程序中嵌入的动态的、运行时扩展的编程语言的首选。其中的原因也许是当时大家或多或少的都会一些JavaScript，还有当时存在两个高质量的嵌入扩展（SpiderMonkey c语言编写，Rhino Java语言编写）。</p>
<p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 22px; text-indent: 24px; ">在2000年的时候，一些人（著名的Brent Ashley、Alex Russell、Douglas Crockford）开始注意到JavaScript究竟能做什么。Brend开始研究JavaScript与服务器通信的方法，提出了我们现在公认的Ajax Style。而且在当时浏览器对于XMLHttpRequest支持不是很完善的时候，他增加或者形成了很多完成这项处理的很多巧妙的方法。他建立了一个网站&#8220;Remote Scripts Resources&#8221;，并且编写了一个JavaScript Remote Scripting (JSRS)库来支持不同浏览器的兼容性。<br />
Alex Russel建立了一个netWindow项目，意图建立一个支持富UI、可编程、图形环境的网页，同时带有完全可拖动的窗口和其他小组件，netWindows变成了nWigets，并且最终催生了Dojo Project，一个当前重要的Ajax框架。<br />
Douglas Crockford一直在研究JavaScript语言的丰富性，最后他发布了一系列有建设性的文章，例如：The World&#8217;s Most Misunderstood Programming Language，在这些文章中，他指出了JavaScript在使用中的一些技巧和一些缺点。<br />
Brent、Alex和Doug当时的声音都很薄弱，就像旷野中的呼声，但是当最后其他的Web开发社区准备将注意力投向JavaScript的时候，他们所作的这些工作让我们的生活变得更加简单了。<br />
我在2000年到2003年中段的时候，对于JavaScript的关注都只是一些零星的片段，我确实没有投入太多的关注，我沉浸在Java的乐土中，闲暇的时候研究一下Ruby，而正是这段经历为我再一次的认识JavaScript提供了准备。<br />
在2003年的6月，我的朋友给我演示了netWindows，当我从地板上捡起我的下巴来以后（After i pick my jaw up off the floor，作者还真是幽默），我朋友告诉我说Alex这个人不是疯子，我如梦方醒开始认真的研究JavaScript，现在看来，当时Google也有一帮人在做同样的事情。</p>
<p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 22px; text-indent: 24px; "><strong>伟大的革命</strong></p>
<p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 22px; text-indent: 24px; ">每个看这篇文章的人都应该知道一些Ajax第一次引爆屏幕的情景，今天我来简短的说一些完整的情节。</p>
<p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 22px; text-indent: 24px; ">第一个引起我注意的Ajax应用是Gmail。很明显，他先是下载了很多的JavaScript，然后在后台不断地与服务器进行通信，避免页面的刷新。他确实给人非常深的印象，同时也给其他的技术团队带来不知所措的感觉。我当时在想Google一定是有一个非常成熟的定制化工具来开发如此复杂的客户/服务器端管理。<br />
真正让我明白的是Google的Google Suggest。现在的人一定很熟悉，当我们输入的时候，通过与服务器的交互将我们可能需要的词条显示出来供我们选择。<br />
Google Suggest在两个方面让我印象深刻，第一是他是如此简单以至于大多数的技术人员都能够明白他的工作原理并且应用到自己的网络项目中；另外一个是Google Suggest针对用户的每次keyup事件进行相应和通信，让我看到同服务器通信是如此的简单，我完全被折服了。<br />
不久以后又袭来了Google Maps，Jess James Garret形成了Ajax这个术语，从此以后讨论变得更加方便。<br />
从此以后，Ajax变成了我们处理网络应用的的标准方法。而且现在我们有了更多的工具和第三方库选择，但我们又陷入另一个难题：选择太多了。</p>
<p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 22px; text-indent: 24px; "><strong>停止担心，爱上DOM</strong></p>
<p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 22px; text-indent: 24px; ">我已经阐明了为什么JavaScript有这个名声的众多原因，其中有好的也有坏的，在这众多的原因中，我只想重复一条，他是如此重要，能够解释为什么很多有经验的程序员经给被自己的经验所蒙蔽。<br />
这一部分作者以一个例子来说明了JavaScript的编写方式和Java是多么的不同，最后提出了一些有意义的总结：<br />
Functions are first-class objects.<br />
Methods are just functions attached to objects.<br />
You can add methods to classes at any time (even after instances have been created).<br />
Individual objects can have their own methods.<br />
&#8220;Class constructors&#8221; are just functions.<br />
Functions, being objects, can have their own properties.<br />
You can call functions with fewer (or more) arguments than the function is declared to take.<br />
If no value is passed for a function argument, it gets the value undefined.</p>
<p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 22px; text-indent: 24px; "><strong>总结</strong><br />
最后让我们每一位JavaScript开发者来正确的认识JavaScript，用它来完成他应当完成的任务。</p>
<p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 22px; text-indent: 24px; ">Ajax is a gateway drug for JavaScript.</p>
<p style="margin-top: 15px; margin-right: 0px; margin-bottom: 15px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; line-height: 22px; text-indent: 24px; ">[参考资料]<br />
1、Learn To love Javascript http://vanderburg.org/Writing/LearningToLoveJavaScript/<br />
2、NewtonScript http://en.wikipedia.org/wiki/NewtonScript<br />
3、Java In Best Top Ten of 1995 http://www.time.com/time/magazine/article/0,9171,983903,00.html</p>
</span>
<img src ="http://www.blogjava.net/dm520/aggbug/307012.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dm520/" target="_blank">dm520</a> 2009-12-23 12:17 <a href="http://www.blogjava.net/dm520/articles/307012.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用JavaScript实现更复杂的交互</title><link>http://www.blogjava.net/dm520/articles/306678.html</link><dc:creator>dm520</dc:creator><author>dm520</author><pubDate>Sat, 19 Dec 2009 07:53:00 GMT</pubDate><guid>http://www.blogjava.net/dm520/articles/306678.html</guid><wfw:comment>http://www.blogjava.net/dm520/comments/306678.html</wfw:comment><comments>http://www.blogjava.net/dm520/articles/306678.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dm520/comments/commentRss/306678.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dm520/services/trackbacks/306678.html</trackback:ping><description><![CDATA[<span  style="font-size: 14px; line-height: 22px; "><strong>一、什么是框架</strong><br />
框架Frames最主要功用是"分割"视窗，使每个"小视窗"能显示不同的HTM L文件，不同框架之间可以互动(interact)，这就是说不同框架之间可以交换讯息与资料。例如:假设您开了两个frames，第一个frame可显示书的目录，第二个frame则显示章节的具体内容。<br />
框架可以将屏幕分割成不同的区域，每个区域有自己的URL，通过Frames[]数组对象来实现不同框架的访问。实际上框架对象本身也一类窗口，它继承了窗口对象的所有特征，并拥有所有的属性和方法。下面我们先看一下框架的例子。见图9-1所示。<br />
<br />
<img src="http://www8.ccidnet.com/school/web//2001/04/29/image/jImage09a.gif"  alt="" /><br />
图9-1 框架对象<br />
<table border="1" cellpadding="10" bordercolor="#FFFFFF">
    <tbody>
        <tr>
            <td bgcolor="#CCCCCC" bordercolor="#333333" style="font-size: 9pt; ">&lt;HTML&gt;<br />
            &lt;HEAD&gt;<br />
            &lt;/HEAD&gt;<br />
            &lt;Frameset Rows="20%,80%"&gt;<br />
            &lt;frame src="test9_1.html"&gt;<br />
            &lt;Frameset Cols="50%,50%"&gt;<br />
            &lt;frame src="test9_2.html"&gt;<br />
            &lt;frame src="test9_3.html"&gt;<br />
            &lt;/Frameset&gt;<br />
            &lt;/Frameset&gt;<br />
            &lt;/HTML&gt;<br />
            </td>
        </tr>
    </tbody>
</table>
<br />
以上HTML标识将屏幕分成三个框架。先将窗口分成以二行为单位的窗口，之后再按分成二个窗口。并在相应的框架中放入自己的HTML文档。<br />
通过[Framset ]告诉浏览器您要设置几个框架；rows这项参数告诉浏览器您想将视窗分割成几列；而 cols这项参数是告诉浏览器您想将视窗分割成几行。<br />
可以用很多组的 &lt;frameset...&gt; tags 将视窗分割得更复杂。<br />
可以给每个frame一个"名字" (name)。frame的名字在JavaScript语法中的地位非常重要。 　　　　可以用 &lt;src&gt; 告诉浏览器您要载入哪一个 HTML文件。<br />
<br />
<strong>二、如何访问框架</strong><br />
在前面我们介绍过使用document.forms[]实现单一窗体中不同元素的访问。而要实现框架中多窗体的不同元素的访问，则必须使用window对象中的Frames属性。Frames属性同样也是一个数组，他在　　父框架集中为每一个子框架设有一项。通过下标实现不同框架的访问:<br />
parent.frames[Index1].docuement.forms[index2]<br />
通过parent.frames.length确定窗口中窗体的数目。 除了使用数组下标来访问窗体外还可以使用框架名和窗体名来实现各元素的访：<br />
parent.framesName.decument.formNames.elementName.(m/p)<br />
<br />
<strong>&nbsp;三、范例</strong><br />
下面我们通过一个具体的实例, 来说明利用JavaScript脚本在WEB中实现更为复杂的信息交互。该例子是在一个多窗口中实现窗体信息的动态交互,在程序中首先在浏览器窗口中制作三个用于窗体交互的窗口,每个窗体窗口实现不同信息的动态交互。<br />
tset9.html为主调用文档它首先将窗口划分为具有二行的窗体,尔后再将第二行的窗体划分为具有二列的窗体；<br />
test9-1.html为显示标题文档；<br />
test9_2.html为第二框架文档其中需要注意的是:<br />
通过JavaScript脚本将所示的&#8220;云南省&#8221;和&#8220;四川省&#8221;分别改为&#8220;昆明市&#8221;和&#8220;成都市&#8221;；<br />
test7_3.html为第三框架文档。<br />
<br />
主调文档<br />
主要作用是将窗口划分为具有二行的窗体,尔后再将第二行的窗体划分为具有二列的窗体。<br />
Test9.htm<br />
<table border="1" cellpadding="10" bordercolor="#FFFFFF">
    <tbody>
        <tr>
            <td bgcolor="#CCCCCC" bordercolor="#333333" style="font-size: 9pt; ">&lt;HTML&gt;<br />
            &lt;HEAD&gt;<br />
            &lt;/HEAD&gt;<br />
            &lt;Frameset Rows="10%,90%"&gt;<br />
            &lt;frame src="test9_1.htm"&gt;<br />
            &lt;Frameset Cols="40%,60%"&gt;<br />
            &lt;frame src="test9_2.htm"&gt;<br />
            &lt;frame src="test9_3.htm"&gt;<br />
            &lt;/Frameset&gt;<br />
            &lt;/Frameset&gt;<br />
            &lt;/HTML&gt;<br />
            第一个框架<br />
            主要作用是显示标题文档。<br />
            Test9_1.htm<br />
            &lt;HTML&gt;<br />
            &lt;HEAD&gt;<br />
            &lt;/HEAD&gt;<br />
            &lt;H2&gt;使用框架实现WEB交互&lt;/H2&gt;<br />
            &lt;/HTML&gt;<br />
            </td>
        </tr>
    </tbody>
</table>
<br />
第二个框架<br />
主要作用是实现交互。可以通过JavaScript脚本将所示的&#8220;云南省&#8221;和&#8220;四川省&#8221;分别改为&#8220;昆明市&#8221;和&#8220;成都市&#8221;。<br />
Test9_2.htm<br />
<table border="1" cellpadding="10" bordercolor="#FFFFFF">
    <tbody>
        <tr>
            <td bgcolor="#CCCCCC" bordercolor="#333333" style="font-size: 9pt; ">&lt;HTML&gt;<br />
            &lt;HEAD&gt;<br />
            &lt;/HEAD&gt;<br />
            &lt;Body&gt;<br />
            &lt;Form name="test9_1"&gt;<br />
            请选择城市：&lt;BR&gt;<br />
            &lt;Select name="select1" Multiple&gt;<br />
            &lt;Option&gt;云南省<br />
            &lt;Option&gt;四川省<br />
            &lt;Option&gt;贵州省<br />
            &lt;Option&gt;山东省<br />
            &lt;Option&gt;江苏省<br />
            &lt;Option&gt;浙江省<br />
            &lt;Option&gt;安徽省<br />
            &lt;Option&gt;河南省<br />
            &lt;/select&gt;&lt;BR&gt;<br />
            &lt;HR&gt;<br />
            &lt;Input Type="Submit" name="" value="提交"&gt;<br />
            &lt;Input Type="reset" name="" value="复位"&gt;<br />
            &lt;/Form&gt;<br />
            &lt;pre&gt;<br />
            &lt;script language="JavaScript"&gt;<br />
            document.test9_1.elements[0].options[0].text="昆明市";<br />
            document.test9_1.elements[0].options[1].text="成都市";<br />
            &lt;/script&gt;<br />
            &lt;/pre&gt;<br />
            &lt;/Body&gt;<br />
            &lt;/HTML&gt;<br />
            </td>
        </tr>
    </tbody>
</table>
<br />
第三个框架<br />
主要作用是实现交互。<br />
Test9_3.htm<br />
<table border="1" cellpadding="10" bordercolor="#FFFFFF">
    <tbody>
        <tr>
            <td bgcolor="#CCCCCC" bordercolor="#333333" style="font-size: 9pt; ">&lt;HTML&gt;<br />
            &lt;HEAD&gt;<br />
            &lt;/HEAD&gt;<br />
            &lt;Body&gt;<br />
            &lt;Form name="test9_2"&gt;<br />
            请输入用户名：<br />
            &lt;Input Type="text" name="text1" Value="" Size=20&gt;&lt;BR&gt;<br />
            &lt;HR&gt;<br />
            请选择:<br />
            &lt;Input Type="Checkbox" name="checkbox1" Value="qb"&gt;全部信息&lt;BR&gt;<br />
            &lt;Input Type="Checkbox" name="checkbox2" Value="bf"&gt;部分信息&lt;BR&gt;<br />
            &lt;Input Type="Checkbox" name="checkbox3" Value="sy"&gt;所有城市&lt;br&gt;<br />
            &lt;HR&gt;<br />
            &lt;Input Type="Submit" name="" value="提交"&gt;<br />
            &lt;Input Type="reset" name="" value="复位"&gt;<br />
            &lt;BR&gt;<br />
            &lt;/Form&gt;<br />
            &lt;script language="JavaScript"&gt;<br />
            document.test9_2.elements[0].value="劳动和社会保障";<br />
            document.test9_2.elements[1].checked=true;<br />
            document.test9_2.elements[2].checked=true;<br />
            document.test9_2.elements[3].checked=false;<br />
            &lt;/script&gt;<br />
            &lt;/Body&gt;<br />
            &lt;/HTML&gt;<br />
            </td>
        </tr>
    </tbody>
</table>
在浏览器中的结果见图9-2所示。<br />
<br />
<img src="http://www8.ccidnet.com/school/web//2001/04/29/image/jImage09b.gif"  alt="" /><br />
图 9-2 在浏览器中结果<br />
<br />
本讲介绍框架中的基本元素的主要功能和使用，利用JavaScript脚本可以非常方便、灵活地实现Web页面更为复杂的信息交互，这是HTML标识语言所不能具备的。从中可以看出JavaScript是多么的吸引众多的Web设计人员。</span>
<img src ="http://www.blogjava.net/dm520/aggbug/306678.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dm520/" target="_blank">dm520</a> 2009-12-19 15:53 <a href="http://www.blogjava.net/dm520/articles/306678.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>用JavaScript脚本实现Web页面信息交互</title><link>http://www.blogjava.net/dm520/articles/306677.html</link><dc:creator>dm520</dc:creator><author>dm520</author><pubDate>Sat, 19 Dec 2009 07:52:00 GMT</pubDate><guid>http://www.blogjava.net/dm520/articles/306677.html</guid><wfw:comment>http://www.blogjava.net/dm520/comments/306677.html</wfw:comment><comments>http://www.blogjava.net/dm520/articles/306677.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dm520/comments/commentRss/306677.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dm520/services/trackbacks/306677.html</trackback:ping><description><![CDATA[<span  style="font-size: 14px; line-height: 22px; ">要实现动态交互，必须掌握有关窗体对象(Form)和框架对象(Frames)更为复杂的知识。<br />
<br />
<strong>一、窗体基础知识</strong><br />
窗体对象可以使设计人员能用窗体中不同的元素与客户机用户相交互，而用不着在之前首先进行数据输入，就可以实现动态改变Web文档的行为。<br />
<br />
<font color="#FF0000">１、什么是窗体对象</font><br />
窗体（Form）:它构成了Web页面的基本元素。通常一个Web页面有一个窗体或几个窗体，使用Forms[]数组来实现不同窗体的访问。<br />
<table border="1" cellpadding="10" bordercolor="#FFFFFF">
    <tbody>
        <tr>
            <td bgcolor="#CCCCCC" bordercolor="#333333" style="font-size: 9pt; ">&lt;form Name=Form1&gt;<br />
            &lt;INPUT type=text...&gt;<br />
            &lt;Input type=text...&gt;<br />
            &lt;Inpup byne=text...&gt;<br />
            &lt;/form&gt;<br />
            &lt;form Name=Form2&gt;<br />
            &lt;INPUT type=text...&gt;<br />
            &lt;Input type=text...&gt;<br />
            &lt;/form&gt;<br />
            </td>
        </tr>
    </tbody>
</table>
<br />
在Forms[0]中共有三个基本元素，而Forms[1]中只有两个元素。<br />
窗体对象最主要的功能就是能够直接访问HTML文档中的窗体，它封装了相关的HTML代码：
<table border="1" cellpadding="10" bordercolor="#FFFFFF">
    <tbody>
        <tr>
            <td bgcolor="#CCCCCC" bordercolor="#333333" style="font-size: 9pt; "><br />
            &lt;Form<br />
            Name ="表的名称"<br />
            Target ="指定信息的提交窗口"<br />
            action ="接收窗体程序对应的URL"<br />
            Method =信息数据传送方式(get/post)<br />
            enctype ="窗体编码方式"<br />
            [onsubmit ="JavaScript代码"]&gt;<br />
            &lt;/Form&gt;<br />
            </td>
        </tr>
    </tbody>
</table>
<br />
<font color="#FF0000">２、窗体对象的方法</font><br />
窗体对象的方法只有一个--submit()方法，该方法主要功用就是实现窗体信息的提交。如提交Mytest窗体,则使用下列格式：<br />
document.mytest.submit()<br />
<br />
<font color="#FF0000">３、窗体对象的属性</font><br />
窗体对象中的属性主要包括以下：elements name action target encoding method.<br />
除Elements外，其它几个均反映了窗体中标识中相应属性的状态，这通常是单个窗体标识；而elements常常是多个窗体元素值的数组，例：<br />
elements[0].Mytable.elements[1]<br />
<br />
<font color="#FF0000">４、访问窗体对象</font><br />
在JavaScript中访问窗体对象可由两种方法实现：<br />
（１）通过访问窗体<br />
在窗体对象的属性中首先必须指定其窗体名，而后就可以通过下列标识访问窗体如：document.Mytable()。<br />
（２）通过数组来访问窗体<br />
除了使用窗体名来访问窗体外，还可以使用窗体对象数组来访问窗体对象。但需要注意一点，因窗体对象是由浏览器环境的提供的，而浏览器环境所提供的数组下标是由0到n。所以可通过下列格式实现窗体对象的访问：<br />
document.forms[0]<br />
document.forms[1]<br />
document.forms[2]...<br />
<br />
<font color="#FF0000">５、引用窗体的先决条件</font><br />
在JavaScript中要对窗体引用的条件是：必须先在页面中用标识创建窗体，并将定义窗体部分放在引用之前。<br />
<br />
<strong>二、窗体中的基本元素</strong><br />
窗体中的基本元素由按钮、单选按钮、复选按钮、提交按钮、重置按钮、文本框等组成。<br />
在JavaScript中要访问这些基本元素，必须通过对应特定的窗体元素的数组下标或窗体元素名来实现。每一个元素主要是通过该元素的属性或方法来引用。其引用的基本格式见下:<br />
formName.elements[].methadName (窗体名.元素名或数组.方法)<br />
formName.elemaent[].propertyName(窗体名.元素名或数组.属性)<br />
<br />
下面分别介绍：<br />
<br />
<font color="#FF0000">１、Text单行单列输入元素</font><br />
功能：对Text标识中的元素实施有效的控制。<br />
基本属性：<br />
Name：设定提交信息时的信息名称。对应于HTML文档中的Name。<br />
Value：用以设定出现在窗口中对应HTML文档中Value的信息。<br />
defaultvalue：包括Text元素的默认值<br />
基本方法：<br />
blur()：将当前焦点移到后台。<br />
select()：加亮文字。<br />
主要事件：<br />
onFocus：当Text获得焦点时，产生该事件。<br />
OnBlur：从元素失去焦点时，产生该事件。<br />
Onselect：当文字被加亮显示后，产生该文件。<br />
onchange：当Text元素值改变时，产生该文件。<br />
例：...<br />
<table border="1" cellpadding="10" bordercolor="#FFFFFF">
    <tbody>
        <tr>
            <td bgcolor="#CCCCCC" bordercolor="#333333" style="font-size: 9pt; ">&lt;Form name="test"&gt;<br />
            &lt;input type="text" name="test" value="this is a javascript" &gt;<br />
            &lt;/form&gt;<br />
            ...<br />
            &lt;script language ="Javascirpt"&gt;<br />
            document.mytest.value="that is a Javascript";<br />
            document.mytest.select();<br />
            document.mytest.blur();<br />
            &lt;/script&gt;<br />
            </td>
        </tr>
    </tbody>
</table>
<br />
<font color="#FF0000">２、textarea多行多列输入元素</font><br />
功能：实施对Textarea中的元素进行控制。<br />
基本属性<br />
name：设定提交信息时的信息名称，对应HTML文档Textarea的Name。<br />
Value：用以设定出现在窗口中对应HTML文档中Value的信息。<br />
Default value：元素的默认值。<br />
方法：<br />
blur()：将输入焦点失去<br />
select()：将文字加亮后<br />
事件：<br />
onBlur:当失去输入焦点后产生该事件<br />
onFocus:当输入获得焦点后，产生该文件<br />
Onchange:当文字值改变时，产生该事件<br />
Onselect:当文字加亮后，产生该文件<br />
<br />
<font color="#FF0000">３、Select选择元素</font><br />
功能：实施对滚动选择元素的控制。<br />
属性：<br />
name:设定提交信息时的信息名称，对应文档select中的name。<br />
Length:对应文档select中的length<br />
options:组成多个选项的数组<br />
selectIndex;该下标指明一个选项<br />
select在中每一选项都含有以下属性：<br />
Text:选项对应的文字<br />
selected:指明当前选项是否被选中<br />
Index:指明当前选项的位置<br />
defaultselected:默认选项<br />
<br />
事件：<br />
OnBlur：当select选项失去焦点时，产生该文件。<br />
onFocas:当select获得焦点时，产生该文件。<br />
Onchange:选项状态改变后，产生该事件。<br />
<br />
<font color="#FF0000">４、Button按钮</font><br />
功能：实施对Button按钮的控制。<br />
属性：<br />
Name:设定提交信息时的信息名称，对应文档中button的Name。<br />
Value:用以设定出现在窗口中对应HTML文档中Value的信息。<br />
方法：<br />
click()该方法类似于一个按下的按钮。<br />
事件：<br />
onclick当单击button按钮时，产生该事件。<br />
例 ：<br />
<table border="1" cellpadding="10" bordercolor="#FFFFFF">
    <tbody>
        <tr>
            <td bgcolor="#CCCCCC" bordercolor="#333333" style="font-size: 9pt; ">&lt;Form name="test"&gt;<br />
            &lt;input type="button" name="testcall" onclick=tmyest()&gt;<br />
            &lt;/form&gt;<br />
            ...<br />
            &lt;script language="javascirpt"&gt;<br />
            document.elements[0].value="mytest"; //通过元素访问<br />
            或<br />
            document.testcallvalue="mytest"; // 通过名字访问<br />
            &lt;/script&gt;<br />
            .....<br />
            </td>
        </tr>
    </tbody>
</table>
<br />
<font color="#FF0000">５、checkbox检查框</font><br />
功能：实施对一个具有复选框中元素的控制。<br />
属性：<br />
name:设定提交信息时的信息名称。<br />
Value:用以设定出现在窗口中对应HTML文档中Value的信息。<br />
Checked:该属性指明框的状态true/false.<br />
defauitchecked:默认状态<br />
方法：<br />
click()该方法使得框的某一个项被选中。<br />
事件：<br />
onclick:当框的选被选中时，产生该事件。 　<br />
<br />
<font color="#FF0000">６、radio无线按钮</font><br />
功能：实施对一个具单选功能的无线按钮控制。<br />
属性：<br />
name:设定提交信息时的信息名称，对应HTML文档中的radio的name相同<br />
value:用以设定出现在窗口中对应HTML文档中Value的信息，对应HTML文档中的radio的name。<br />
length:单选按钮中的按钮数目。<br />
defalechecked:默认按钮。<br />
checked:指明选中还是没有选中。<br />
index:选中的按钮的位置。<br />
方法：<br />
chick():选定一个按钮。<br />
事件：<br />
onclick:单击按钮时，产生该事件。<br />
<font color="#FF0000"><br />
７、hidden:隐藏</font><br />
功能：实施对一个具有不显示文字并能输入字符的区域元素的控制。<br />
属性：<br />
name:设定提交信息时的信息名称，对应HTML文档的hidden中的Name。<br />
Value:用以设定出现在窗口中对应HTML文档中Value的信息，对应HTML文档hidden中的value。<br />
defaleitvalue:默认值<br />
<br />
<font color="#FF0000">８、Password口令</font><br />
功能：实施对具有口令输入的元素的控制。<br />
属性：<br />
Name:设定提交信息时的信息名称，对应HTML文档中password中的name。<br />
Value:用以设定出现在窗口中对应HTML文档中Value的信息，对应HTML文档中password中的Value。<br />
defaultvalu:默认值<br />
方法<br />
select():加亮输入口令域。<br />
blur():使这丢失passward输入焦点。<br />
focus():获得password输入焦点。<br />
<br />
<font color="#FF0000">９、submit提交元素</font><br />
功能：实施对一个具有提交功能按钮的控制。<br />
属性：<br />
name:设定提交信息时的信息名称，对应HTML文档中submit。<br />
Value:用以设定出现在窗口中对应HTML文档中Value的信息，对应HTML文档中value。<br />
方法<br />
click()相当于按下submit按钮。<br />
事件：<br />
onclick()当按下该按钮时，产生该事件。<br />
<br />
<strong>三、范例</strong><br />
下面我们演示通过点击一个按钮（red）来改变窗口颜色，点击&#8220;调用动态按钮文档&#8221;调用一个动态按钮文档。<br />
test8_1.htm<br />
<table border="1" cellpadding="10" bordercolor="#FFFFFF">
    <tbody>
        <tr>
            <td bgcolor="#CCCCCC" bordercolor="#333333" style="font-size: 9pt; ">&lt;html&gt;<br />
            &lt;head&gt;<br />
            &lt;Script Language="JavaScript"&gt;<br />
            //原来的颜色<br />
            document.bgColor="blue";<br />
            document.vlinkColor="white";<br />
            document.linkColor="yellow";<br />
            document.alinkcolor="red";<br />
            //动态改变颜色<br />
            function changecolor(){<br />
            document.bgColor="red";<br />
            document.vlinkColor="blue";<br />
            document.linkColor="green";<br />
            document.alinkcolor="blue";<br />
            }<br />
            &lt;/script&gt;<br />
            &lt;/HEAD&gt;<br />
            &lt;body bgColor="White" &gt;<br />
            &lt;A href="test8_2.htm"&gt; 调用动态按钮文档&lt;/a&gt;<br />
            &lt;form &gt;<br />
            &lt;Input type="button" Value="red" onClick="changecolor()"&gt;<br />
            &lt;/form&gt;<br />
            &lt;/BODY&gt;<br />
            &lt;/HTML&gt;<br />
            </td>
        </tr>
    </tbody>
</table>
输出结果见图1所示。<br />
<br />
<img src="http://www8.ccidnet.com/school/web//2001/04/29/image/jImage08_1.gif"  alt="" /><br />
图1<br />
<br />
动态按钮程序。<br />
test8_2.htm
<table border="1" cellpadding="10" bordercolor="#FFFFFF">
    <tbody>
        <tr>
            <td bgcolor="#CCCCCC" bordercolor="#333333" style="font-size: 9pt; "><br />
            &lt;HTML&gt;<br />
            &lt;HEAD&gt;<br />
            &lt;/HEAD&gt;<br />
            &lt;p align="center"&gt;　&lt;/p&gt;<br />
            &lt;div align="center"&gt;&lt;center&gt;<br />
            &lt;table border="0" cellspacing="0" cellpadding="0"&gt;<br />
            &lt;tr&gt;<br />
            &lt;td width="100%"&gt;&lt;form name="form2" onSubmit="null"&gt;<br />
            &lt;p&gt;&lt;input type="submit" name="banner" VALUE="Submit"<br />
            onClick="alert('You have to put an \'action=[url]\' on the form<br />
            tag!!')"&gt; &lt;br&gt;<br />
            &lt;script language="JavaScript"&gt;<br />
            var id,pause=0,position=0;<br />
            function banner() {<br />
            // variables declaration<br />
            var i,k,msg=" 这里输入你要的内容";// increase msg<br />
            k=(30/msg.length)+1;<br />
            for(i=0;i&lt;=k;i++) msg+=" "+msg;<br />
            // show it to the window<br />
            document.form2.banner.value=msg.substring(position,position-30);<br />
            // set new position<br />
            if(position++==msg.length) position=0;<br />
            // repeat at entered speed<br />
            id=setTimeout("banner()",60); }<br />
            // end --&gt;<br />
            banner();<br />
            &lt;/script&gt;&lt;/p&gt;<br />
            &lt;/form&gt;<br />
            &lt;/td&gt;<br />
            &lt;/tr&gt;<br />
            &lt;/table&gt;<br />
            &lt;/center&gt;&lt;/div&gt;<br />
            &lt;p&gt;　&lt;/p&gt;<br />
            &lt;BODY&gt;<br />
            &lt;A href="test8_1.htm"&gt; 返回&lt;/a&gt;<br />
            &lt;/BODY&gt;<br />
            &lt;/HTML&gt;<br />
            </td>
        </tr>
    </tbody>
</table>
输出结果见图2所示。<br />
<img src="http://www8.ccidnet.com/school/web//2001/04/29/image/jImage08_2.gif"  alt="" /><br />
图2 　<br />
本讲介绍了使用JavaScript脚本实现Web页面信息交互的方法。其中主要介绍了窗体中的基本元素的主要功能和使用。</span>
<img src ="http://www.blogjava.net/dm520/aggbug/306677.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dm520/" target="_blank">dm520</a> 2009-12-19 15:52 <a href="http://www.blogjava.net/dm520/articles/306677.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaScript窗口及输入输出</title><link>http://www.blogjava.net/dm520/articles/306676.html</link><dc:creator>dm520</dc:creator><author>dm520</author><pubDate>Sat, 19 Dec 2009 07:50:00 GMT</pubDate><guid>http://www.blogjava.net/dm520/articles/306676.html</guid><wfw:comment>http://www.blogjava.net/dm520/comments/306676.html</wfw:comment><comments>http://www.blogjava.net/dm520/articles/306676.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dm520/comments/commentRss/306676.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dm520/services/trackbacks/306676.html</trackback:ping><description><![CDATA[<span  style="font-size: 14px; line-height: 22px; ">JavaScript是基于对象的脚本编程语言，那么它的输入输出就是通过对象来完成的。其中有关输入可通过窗口（Window）对象来完成，而输出可通过文档（document）对象的方法来实现。<br />
<br />
<strong>一、窗口及输入输出</strong><br />
请看下面例子：<br />
<table border="1" cellpadding="10" bordercolor="#FFFFFF">
    <tbody>
        <tr>
            <td bgcolor="#CCCCCC" bordercolor="#333333" style="font-size: 9pt; ">&lt;HTML&gt;<br />
            &lt;Head&gt;<br />
            &lt;script languaga="JavaScript"&gt;<br />
            Var test=window.prompt("请输入数据:");<br />
            document.write(test+"JavaScript输入输出的例子");<br />
            &lt;/script&gt;<br />
            &lt;/Head&gt;<br />
            &lt;/HTML&gt;</td>
        </tr>
    </tbody>
</table>
其中window.prompt()就是一个窗口对象的方法，其基本作用是，当装入Web页面时在屏幕上显示一个具有&#8220;确定&#8221;和&#8220;取消&#8221;的对话框，让你输出数据。document.writle是一个文档对象的方法，它的基本功能，是实现Web页面的输出显示。见图1所示。<br />
<br />
<img src="http://www8.ccidnet.com/school/web//2001/04/29/image/jImage07-1.gif"  alt="" /><br />
图1 　<br />
<br />
<font color="#FF0000">1、窗口对象</font><br />
该对象包括许多有用的属性、方法和事件驱动程序，编程人员可以利用这些对象控制浏览器窗口显示的各个方面，如对话框、框架等。在使用应注意以下几点：<br />
该对象对应于HTML文档中的&lt;Body&gt;和&lt;FrameSet&gt;两种标识；<br />
onload和onunload都是窗口对象属性；<br />
在JavaScript脚本中可直接引用窗口对象。如：<br />
window.alert("窗口对象输入方法")<br />
可直接使用以下格式：<br />
alert("窗口对象输入方法")<br />
<br />
<font color="#FF0000">2、窗口对象的事件驱动</font><br />
窗口对象主要有装入Web文档事件onload和卸载时onunload事件。用于文档载入和停止载入时开始和停止更新文档。<br />
<br />
<font color="#FF0000">3、窗口对象的方法</font><br />
窗口对象的方法主要用来提供信息或输入数据以及创建一个新的窗口。<br />
创建一个新窗口open()<br />
使用window.open（参数表）方法可以创建一个新的窗口。其中参数表提供有窗口的主要特性和文档及窗口的命名。<br />
具有OK按钮的对话框<br />
alert()方法能创建一个具有OK按钮的对话框。<br />
具有OK和Cancel按钮的对话框<br />
confirm()方法为编程人员提供一个具有两个按钮的对话框。<br />
具有输入信息的对话框<br />
prompt()方法允许用户在对话框中输入信息，并可使用默认值，其基本格式如下prompt（&#8220;提示信息&#8221;，默认值）。<br />
<br />
<font color="#FF0000">4、窗口对象中的属性</font><br />
窗口对象中的属性主要用来对浏览器中存在的各种窗口和框架的引用，其主要属性有以下几个：<br />
（１）frames 确文档中帧的数目<br />
frames（帧）作为实现一个窗口的分隔操作，起到非常有用的作用，在使用注意以下几点：<br />
frames属性是通过HTML标识&lt;Frames&gt;的顺序来引用的，它包含了一个窗口中的全部帧数。<br />
帧本身已是一类窗口，继承了窗口对象所有的全部属性和方法。<br />
（２）Parent 指明当前窗口或帧的父窗口。<br />
（３）defaultstatus:默认状态，它的值显示在窗口的状态栏中。<br />
（４）status:包含文档窗口中帧中的当前信息。<br />
（５）top:包括的是用以实现所有的下级窗口的窗口。<br />
（６）window.指的是当前窗口<br />
（７）self:引用当前窗口。<br />
<br />
<font color="#FF0000">5、输出流及文档对象</font><br />
在JavaScript文档对象中，提供了用于显示关闭、消除、打开HTML页面的输出流。<br />
（１）创建新文档open()方法<br />
使用document.open()创建一个新的窗口或在指定的命令窗口内打开文档。由于窗口对象是所加载的父对象,因而我们在调用它的属性或方法时,不需要加入Window对象。例用Window. Open()与Open()是一样的。<br />
打开一个窗口的基本格式：<br />
Window .open("URL","窗口名字","窗口属性"]<br />
window属性参数是由一个字符串列表项它由逗号分隔，它指明了有关新创建窗口的属性。见表7-1所示。<br />
<br />
表7-1<br />
<table bordercolor="#999999" cellspacing="0" cellpadding="7" width="70%" border="1" bgcolor="#99CCFF">
    <tbody>
        <tr>
            <td valign="top" width="30%">
            <p align="center" style="font-size: 12px; line-height: 22px; "><font lang="ZH-CN" face="System,??"></font><font lang="ZH-CN" face="宋体">参 数</font></p>
            </td>
            <td valign="top" width="18%">
            <p align="center" style="font-size: 12px; line-height: 22px; "><font lang="ZH-CN" face="宋体">设定值</font></p>
            </td>
            <td valign="top" width="52%">
            <p align="center" style="font-size: 12px; line-height: 22px; "><font lang="ZH-CN" face="宋体">含 义</font></p>
            </td>
        </tr>
        <tr>
            <td valign="top" width="30%">
            <p align="center" style="font-size: 12px; line-height: 22px; "><font lang="ZH-CN" face="宋体">toolbar</font></p>
            </td>
            <td valign="top" width="18%">
            <p align="center" style="font-size: 12px; line-height: 22px; "><font lang="ZH-CN" face="宋体">yes/no</font></p>
            </td>
            <td valign="top" width="52%">
            <p align="center" style="font-size: 12px; line-height: 22px; "><font lang="ZH-CN" face="宋体">建立或不建立标准工具条</font></p>
            </td>
        </tr>
        <tr>
            <td valign="top" width="30%">
            <p align="center" style="font-size: 12px; line-height: 22px; "><font lang="ZH-CN" face="宋体">location</font></p>
            </td>
            <td valign="top" width="18%">
            <p align="center" style="font-size: 12px; line-height: 22px; "><font lang="ZH-CN" face="宋体">yes/no</font></p>
            </td>
            <td valign="top" width="52%">
            <p align="center" style="font-size: 12px; line-height: 22px; "><font lang="ZH-CN" face="宋体">建立或不建立位置输入字段</font></p>
            </td>
        </tr>
        <tr>
            <td valign="top" width="30%">
            <p align="center" style="font-size: 12px; line-height: 22px; "><font lang="ZH-CN" face="宋体">directions</font></p>
            </td>
            <td valign="top" width="18%">
            <p align="center" style="font-size: 12px; line-height: 22px; "><font lang="ZH-CN" face="宋体">yes/no</font></p>
            </td>
            <td valign="top" width="52%">
            <p align="center" style="font-size: 12px; line-height: 22px; "><font lang="ZH-CN" face="宋体">建立或不建立标准目录按钮</font></p>
            </td>
        </tr>
        <tr>
            <td valign="top" width="30%">
            <p align="center" style="font-size: 12px; line-height: 22px; "><font lang="ZH-CN" face="宋体">status</font></p>
            </td>
            <td valign="top" width="18%">
            <p align="center" style="font-size: 12px; line-height: 22px; "><font lang="ZH-CN" face="宋体">yes/no</font></p>
            </td>
            <td valign="top" width="52%">
            <p align="center" style="font-size: 12px; line-height: 22px; "><font lang="ZH-CN" face="宋体">建立或不建立状态条</font></p>
            </td>
        </tr>
        <tr>
            <td valign="top" width="30%">
            <p align="center" style="font-size: 12px; line-height: 22px; "><font lang="ZH-CN" face="宋体">menubar</font></p>
            </td>
            <td valign="top" width="18%">
            <p align="center" style="font-size: 12px; line-height: 22px; "><font lang="ZH-CN" face="宋体">yes/no</font></p>
            </td>
            <td valign="top" width="52%">
            <p align="center" style="font-size: 12px; line-height: 22px; "><font lang="ZH-CN" face="宋体">建立或不建立菜单条</font></p>
            </td>
        </tr>
        <tr>
            <td valign="top" width="30%">
            <p align="center" style="font-size: 12px; line-height: 22px; "><font lang="ZH-CN" face="宋体">scrollbar</font></p>
            </td>
            <td valign="top" width="18%">
            <p align="center" style="font-size: 12px; line-height: 22px; "><font lang="ZH-CN" face="宋体">yes/no</font></p>
            </td>
            <td valign="top" width="52%">
            <p align="center" style="font-size: 12px; line-height: 22px; "><font lang="ZH-CN" face="宋体">建立或不建立滚动条</font></p>
            </td>
        </tr>
        <tr>
            <td valign="top" width="30%">
            <p align="center" style="font-size: 12px; line-height: 22px; "><font lang="ZH-CN" face="宋体">revisable</font></p>
            </td>
            <td valign="top" width="18%">
            <p align="center" style="font-size: 12px; line-height: 22px; "><font lang="ZH-CN" face="宋体">yes/no</font></p>
            </td>
            <td valign="top" width="52%">
            <p align="center" style="font-size: 12px; line-height: 22px; "><font lang="ZH-CN" face="宋体">能否改变窗口大小</font></p>
            </td>
        </tr>
        <tr>
            <td valign="top" width="30%">
            <p align="center" style="font-size: 12px; line-height: 22px; "><font lang="ZH-CN" face="宋体">width</font></p>
            </td>
            <td valign="top" width="18%">
            <p align="center" style="font-size: 12px; line-height: 22px; "><font lang="ZH-CN" face="宋体">yes/no</font></p>
            </td>
            <td valign="top" width="52%">
            <p align="center" style="font-size: 12px; line-height: 22px; "><font lang="ZH-CN" face="宋体">确定窗口的宽度</font></p>
            </td>
        </tr>
        <tr>
            <td valign="top" width="30%">
            <p align="center" style="font-size: 12px; line-height: 22px; "><font lang="ZH-CN" face="宋体">Height</font></p>
            </td>
            <td valign="top" width="18%">
            <p align="center" style="font-size: 12px; line-height: 22px; "><font lang="ZH-CN" face="宋体">yes/no</font></p>
            </td>
            <td valign="top" width="52%">
            <p align="center" style="font-size: 12px; line-height: 22px; "><font lang="ZH-CN" face="宋体">确定窗口的高度。</font></p>
            </td>
        </tr>
    </tbody>
</table>
<br />
在使用Open()方法时，需要注意以下点。<br />
通常浏览器窗中，总有一个文档是打开的。因而不需要为输出建立一个新文档。<br />
在完成对Web文档的写操作后，要使用或调用close()方法来实现对输出流的关闭。<br />
在使用open()来打开一个新流时，可为文档指定一个有效的文档类型，有效文档类型包括text/HTML、text/gif、text/xim、text/plugin等。<br />
（２）write()、writeln()输出显示。<br />
该方法主要用来实现在Web页面上显示输出信息。在实际使用中，需注意以下几点：<br />
writeln()与write()唯一不同之处在于在未尾加了一个换符。<br />
为了正常显示其输出信息，必须指明&lt;pre&gt; &lt;/Pre&gt;标记，使之告诉编辑器。<br />
输出的文档类型，可以由浏览器中的有效的合法文本类型所确定。<br />
（３）关闭文档流close()<br />
在实现多个文档对象中，必须使用close()来关闭一个对象后，才能打开另一个文档对象。<br />
（４）清除文档内容clear()<br />
使用该方法可清除已经打开文档的内容。<br />
<br />
<strong>二、简单的输入、输出例子</strong><br />
在JavaScript中可以非常方便地实现输入输出信息，并与用户进行交互。<br />
<br />
<font color="#FF0000">1、JavaScript信息的输入</font><br />
通过使用JavaScript中所提供的窗口对象方法prompt(), 就能完成信息的输入。该方法提供了最简便的信息输入方式，其基本格式如下：<br />
Window.prompt("提示信", 预定输入信息);<br />
此方法首先在浏览器窗口中弹出一个对话框, 让用户自行输入信息。一旦输入完成后，就返回用户所输入信息的值。例:<br />
test=prompt（&#8220;请输入数据:&#8221;，&#8221;this is a JavaScript&#8221;）<br />
实际上prompt()是窗口对象的一个方法。因为缺省情况下所用的对象就是window对象, 所以windows对象可以省略不写。<br />
<br />
<font color="#FF0000">2、输出显示</font><br />
每种语言，都必须提供信息数据的输出显示。JavaScript也是一样，它提供有几个用于信息输出显示的方法。比较常用的有window.alert()、document.write和及document.writln()方法。<br />
１)、document.write()方法和document.writeln()方法<br />
document是JavaScript中的一个对象在它中封装许多有用的方法，其中write()和writeln()就是用于将文本信息直接输出到浏览器窗口中的方法。<br />
document.write()；<br />
document.writeln()；<br />
说明：<br />
write()和writeln()方法都是用于向浏览器窗口输出文本字串；<br />
二者的唯一区别就是writeln()方法自动在文本之后加入回车符。<br />
<br />
２)、 window.alert()输出<br />
在JavaScript为了方便信息输出，JavaScript提供了具有独立的对话框信息输出─alert()方法。<br />
alert()方法是window对象的一个方法，因此在使用时，不需要写window窗口对象名，而是直接使用就行了。它主要用途用在输出时产生有关警告提示信息或提示用户，一旦用户按&#8220;确定&#8221;钮后，方可继续执行其他脚本程序。例:<br />
<table border="1" cellpadding="10" bordercolor="#FFFFFF">
    <tbody>
        <tr>
            <td bgcolor="#CCCCCC" bordercolor="#333333" style="font-size: 9pt; ">&lt;HTML&gt;<br />
            &lt;HEAD&gt;<br />
            &lt;TITLE&gt;&lt;/TITLE&gt;<br />
            &lt;/HEAD&gt;<br />
            &lt;BODY&gt;<br />
            &lt;Script Language ="JavaScript"&gt;<br />
            alert("这是一个JavaScript测试程序");<br />
            &lt;/Script&gt;<br />
            &lt;/BODY&gt;<br />
            &lt;/HTML&gt;<br />
            </td>
        </tr>
    </tbody>
</table>
<br />
３)、利用输入、输出方法实现交互<br />
在JavaScript中，可以利用prompt()方法和write()方法实现与Web页面用户进行交互。例下面就是一个有关实现交互的例子。<br />
Test7_1.htm<br />
<table border="1" cellpadding="10" bordercolor="#FFFFFF">
    <tbody>
        <tr>
            <td bgcolor="#CCCCCC" bordercolor="#333333" style="font-size: 9pt; ">&lt;HTML&gt;<br />
            &lt;HEAD&gt;<br />
            &lt;TITLE&gt;&lt;/TITLE&gt;<br />
            &lt;/HEAD&gt;<br />
            &lt;BODY&gt;<br />
            &lt;Script Language="JavaScript"&gt;<br />
            &lt;!-- Hide From Other Browsers<br />
            document.write("&lt;H1&gt;有关交互的例子");<br />
            my=prompt("请输入数据:");<br />
            document.write(my+"&lt;/H1&gt;");<br />
            document.close();<br />
            // Stop Hiding from Other Browsers--&gt;<br />
            &lt;/Script&gt;<br />
            &lt;/BODY&gt;<br />
            &lt;/HTML&gt;<br />
            </td>
        </tr>
    </tbody>
</table>
从上面程序可以看出：<br />
可通过write()和prompt()方法实现交互。<br />
在JavaScript脚本语言中可以使用HTML标识语言的代码。从而实现混合编程。其中&lt;H1&gt;和&lt;Br&gt;就是HTML标识符。<br />
<br />
<strong>四、范例</strong><br />
下列程序演示了你进入主页所停留的时间。<br />
test7_2.htm<br />
<table border="1" cellpadding="10" bordercolor="#FFFFFF">
    <tbody>
        <tr>
            <td bgcolor="#CCCCCC" bordercolor="#333333" style="font-size: 9pt; ">&lt;html&gt;<br />
            &lt;form name="myform"&gt;<br />
            &lt;td vAlign="top" width="135"&gt;您在此停留了：<br />
            &lt;input name="clock" size="8" value="在线时间"&gt;&lt;/td&gt;<br />
            &lt;/form&gt;<br />
            &lt;script language="JavaScript"&gt;<br />
            var id, iM = 0, iS = 1;<br />
            start = new Date();<br />
            function go()<br />
            {<br />
            now = new Date();<br />
            time = (now.getTime() - start.getTime()) / 1000;<br />
            time = Math.floor( time);<br />
            iS = time % 60;<br />
            iM = Math.floor( time / 60);<br />
            if ( iS &lt; 10)<br />
            document.myform.clock.value = " " + iM + " 分 0" + iS + " 秒";<br />
            else<br />
            document.myform.clock.value = " " + iM + " 分 " + iS + " 秒";<br />
            id = setTimeout( "go()", 1000);<br />
            }<br />
            go();<br />
            &lt;/script&gt;<br />
            &lt;/body&gt;<br />
            &lt;/html&gt;<br />
            </td>
        </tr>
    </tbody>
</table>
在浏览器中的结果，见图2所示。<br />
<br />
<img src="http://www8.ccidnet.com/school/web//2001/04/29/image/jImage07-2.gif"  alt="" /><br />
图1</span>
<img src ="http://www.blogjava.net/dm520/aggbug/306676.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dm520/" target="_blank">dm520</a> 2009-12-19 15:50 <a href="http://www.blogjava.net/dm520/articles/306676.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>在JavaScript中创建新对象</title><link>http://www.blogjava.net/dm520/articles/306673.html</link><dc:creator>dm520</dc:creator><author>dm520</author><pubDate>Sat, 19 Dec 2009 07:48:00 GMT</pubDate><guid>http://www.blogjava.net/dm520/articles/306673.html</guid><wfw:comment>http://www.blogjava.net/dm520/comments/306673.html</wfw:comment><comments>http://www.blogjava.net/dm520/articles/306673.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dm520/comments/commentRss/306673.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dm520/services/trackbacks/306673.html</trackback:ping><description><![CDATA[<span  style="font-size: 14px; line-height: 22px; ">使用JavaScript可以创建自己的对象。虽然JavaScript内部和浏览器本身的功能已十分强大，但JavaScript还是提供了创建一个新对象的方法。使其不必像超文本标识语言那样，求于或其它多媒体工具，就能完成许多复杂的工作。<br />
在JavaScript中创建一个新的对象是十分简单的。首先它必须定义一个对象，而后再为该对象创建一个实例。这个实例就是一个新对象，它具有对象定义中的基本特征。<br />
<br />
<strong>一、对象的定义</strong><br />
JavaScript对象的定义，其基本格式如下：<br />
Function Object（属性表）<br />
This.prop1=prop1<br />
This.prop2=prop2<br />
...<br />
This.meth=FunctionName1;<br />
This.meth=FunctionName2;<br />
...<br />
在一个对象的定义中，可以为该对象指明其属性和方法。通过属性和方法构成了一个对象的实例。如以下是一个关于University对象的定义：<br />
Function university(name,city,creatDate URL)<br />
This.name=name<br />
This.city=city<br />
This.creatDate=New Date(creatDate)<br />
This.URL=URL<br />
其基本含义如下：<br />
Name－指定一个&#8220;单位&#8221;名称。 　<br />
City－&#8220;单位&#8221;所在城市。 　<br />
CreatDate－记载university对象的更新日期。 　<br />
URL－该对象指向一个网址。<br />
<br />
<strong>二、创建对象实例</strong><br />
一旦对象定义完成后，就可以为该对象创建一个实例了：<br />
NewObject=New object();<br />
其中Newobjet是新的对象，Object已经定义好的对象。例：<br />
<table border="1" cellpadding="10" bordercolor="#FFFFFF">
    <tbody>
        <tr>
            <td bgcolor="#CCCCCC" bordercolor="#333333" style="font-size: 9pt; ">U1=New university(&#8220;云南省&#8221;，&#8220;昆明市&#8221;，"January 05,199712:00:00","http://www.YN.KM")<br />
            U2=New university(&#8220;云南电子科技大学&#8221;，&#8220;昆明&#8221;,"January 07,1997 12:00:00","htlp://www.YNKJ.CN")</td>
        </tr>
    </tbody>
</table>
<br />
<strong>三、对象方法的使用</strong><br />
在对象中除了使用属性外，有时还需要使用方法。在对象的定义中，我们看到This.meth=FunctionName语句，那就是为定义对象的方法。实质对象的方法就是一个函数FunctionName，通过它实现自己的意图。<br />
例在university对象中增加一个方法，该方法是显示它自己本身，并返回相应的字串。<br />
function university(name,city,createDate,URL)<br />
This.Name=Name;<br />
This.city=city;<br />
This.createDate=New Date(creatDate)；<br />
This.URL=URL；<br />
This.showuniversity=showuniversity;<br />
其中This.showuniversity就是定义了一个方法－－－showuniversity()。<br />
而showuniversity()方法是实现university对象本身的显示。<br />
function showuniversity()<br />
For (var prop in this)<br />
alert(prop+="+this[prop]+"");<br />
其中alert是JavaScript中的内部函数，显示其字符串。<br />
<br />
<strong>四、JavaScript中的数组</strong>　<br />
使用New创建数组<br />
JavaScript中没有提供像其它语言具有明显的数组类型，但可以通过function定义一个数组，并使用New对象操作符创建一个具有下标的数组。从而可以实现任何数据类型的存储。<br />
<font color="#FF0000">a、定义对象的数组</font><br />
Function arrayName(size){<br />
This.length=Size;<br />
for(var X=; X&lt;=size;X++)<br />
this[X]=0;<br />
Reture this;<br />
}<br />
其中arrayName是定义数组的一个名子，Size是有关数组大小的值（1-size），即数组元素的个数。通过for循环对一个当前对象的数组进行定义，最后返回这个数组。<br />
从中可以看出，JavaScript中的数组是从1到size，这与其它０到size的数组表示方法有所不同，当然你可根据需要将数组的下标由１到size调整到０到size－１,可由下列实现:<br />
Function arrayName (size)<br />
For (var X=0; X&lt;=size;X++)<br />
this[X]=0;<br />
this.lenght=size;<br />
Return this;<br />
从上面可以看出该方法是只是调整了this.lenght的位置，该位置是用于存储数组的大小的。从而调整后的数组的下标将与其它语言一致。但请读者注意正是由于数组下标顺序由１到size，使得JavaScript中的对象功能更加强大。<br />
<font color="#FF0000">b、创建数组实例</font><br />
一个数组定义完成以后，还不能马上使用，必须为该数组创建一个数组实例：<br />
Myarray=New arrayName(n);<br />
并赋于初值：<br />
Myarray[1]=&#8220;字串１&#8221;；<br />
Myarray[2]=&#8220;字串２&#8221;；<br />
Myarray[3]=&#8220;字串３&#8221;；<br />
...<br />
Myarray[n]=&#8220;字串n&#8221;；<br />
一旦给数组赋于了初值后，数组中就具有真正意义的数据了，以后就可以在程序设计过程中直接引用。<br />
创建多维数组<br />
Function creatMArray(row,col){<br />
var indx=0;<br />
this.length=(row*10)+col<br />
for(var x=1;x&lt;=row;x++)<br />
for(var y=1;y&lt;=col;y++)<br />
indx=(x*10)+y;<br />
this[indx]=&#8221;&#8221;;<br />
}<br />
myMArray=new creatMArray();<br />
之后可通过myMArray[11]、myMArray[12]、myMArray[13]、myMArray[21]、myMArray[22]、myMArray[23]、<br />
&#8230;来引用。<br />
内部数组<br />
在Java中为了方便内部对象的操作,可以使用窗体(Forms)、框架(Frames)、元素(element)、链接(links)和锚(Anchors)数组实现对象的访问。<br />
anchors[]:使用《A name=&#8220;anchorName&#8220;》标识来建立锚的链接。<br />
<br />
links[]: 使用&lt;A href=&#8221;URL&#8221;&gt;来定义一个越文本链接项。<br />
<br />
Forms[]: 在程序中使用多窗体时,建立该数组。<br />
<br />
Elements[]:在一个窗口中使用从个元素时,建立该数组。<br />
<br />
Frames[]:建立框架时,使用该数组<br />
<br />
anchors[]用于窗体的访问(它是通过《form name=&#8220;form1&#8221;》所指定的),link[]用于被链接到的锚点的访问(它是通过《a href=URL》所指定的)。Forms[]反映窗体的属性,而anchors[]反映Web页面中的链接属性。<br />
有关锚数组的文档：<br />
&lt;HTML&gt;<br />
&lt;HEAD&gt;<br />
&lt;BODY&gt;<br />
&lt;A NAME=&#8221;MyAnchorsName1&#8221;&gt; 定义第一个锚名<br />
HTML Code<br />
&lt;A NAME=&#8221;MyAnchorsName2&#8221;&gt; 定义第二个锚名<br />
HTML Code<br />
&lt;A HREF=&#8221;#MyAnchorsName1&#8221;&gt;建立锚的链接<br />
&lt;A HREF=&#8221;#MyAnchorsName2�&gt; 建立锚的链接<br />
&#8230;.<br />
该文档段建立了两面全锚的链接,可通过Anchors[]访问这些锚。document.Anchors[0]反映第一个锚,而document.Anchors[1]反映第二个锚的有关信息。<br />
<br />
<strong>五、范例</strong><br />
范例1：一个动态文字滚动的例子。<br />
test5_1.htm<br />
<table border="1" cellpadding="10" bordercolor="#FFFFFF">
    <tbody>
        <tr>
            <td bgcolor="#CCCCCC" bordercolor="#333333" style="font-size: 9pt; ">&lt;html&gt;<br />
            &lt;head&gt;<br />
            &lt;title&gt;&lt;/title&gt;<br />
            &lt;script LANGUAGE="JavaScript"&gt;<br />
            <br />
            with (top.window.location)<br />
            {baseURL = href.substring (0,href.lastIndexOf ("/") + 1)}<br />
            total_toc_items = 0;<br />
            current_overID = "";<br />
            last_overID = "";<br />
            browser = navigator.appName;<br />
            version = parseInt(navigator.appVersion);<br />
            client=null;<br />
            loaded = 0;<br />
            if (browser == "Netscape" &amp;&amp; version &gt;= 3) client = "ns3";<br />
            function toc_item (img_name,icon_col,width,height) {<br />
            if (client =="ns3") {<br />
            img_prefix = baseURL + img_name;<br />
            this.icon_col = icon_col;<br />
            this.toc_img_off = new Image (width,height);<br />
            this.toc_img_off.src = img_prefix + "_off.gif";<br />
            this.toc_img_on = new Image (width,height);<br />
            this.toc_img_on.src = img_prefix + "_on.gif";<br />
            }<br />
            }<br />
            <br />
            function new_toc_item (img_name,icon_row,width,height) {<br />
            toc_item [img_name] = new toc_item (img_name,icon_row,width,height);<br />
            }<br />
            <br />
            function toc_mouseover (itemID) {<br />
            if (client =="ns3") {<br />
            current_overID = itemID;<br />
            if (current_overID != last_overID) {<br />
            document [current_overID].src = toc_item [current_overID].toc_img_on.src;<br />
            if (last_overID != "") {<br />
            document.images [last_overID].src = toc_item[last_overID].toc_img_off.src;<br />
            }<br />
            last_overID = current_overID;<br />
            }<br />
            }<br />
            }<br />
            <br />
            function toc_mouseout () {<br />
            if (client =="ns3") {<br />
            if (current_overID != "") {<br />
            document.images [current_overID].src = toc_item [current_overID].toc_img_off.src;<br />
            }<br />
            current_overID = "";<br />
            last_overID = "";<br />
            }<br />
            }<br />
            new_toc_item ("1",2,120,20);<br />
            &lt;!-- Begin<br />
            function bannerObject(p){<br />
            this.msg = MESSAGE<br />
            this.out = " "<br />
            this.pos = POSITION<br />
            this.delay = DELAY<br />
            this.i = 0<br />
            this.reset = clearMessage}<br />
            <br />
            function clearMessage(){<br />
            this.pos = POSITION}<br />
            var POSITION = 50;<br />
            var DELAY = 150;<br />
            var MESSAGE = "这是一个动态JavaScript文字显示的例子";<br />
            var scroll = new bannerObject();<br />
            function scroller(){<br />
            scroll.out += " ";<br />
            if(scroll.pos&gt;0)<br />
            for (scroll.i = 0; scroll.i &lt; scroll.pos; scroll.i++) { scroll.out +=" " ; }<br />
            if (scroll.pos&gt;= 0)<br />
            scroll.out += scroll.msg<br />
            else<br />
            scroll.out = scroll.msg.substring(-scroll.pos,scroll.msg.length)<br />
            document.noticeForm.notice.value = scroll.out<br />
            scroll.out = " ";<br />
            scroll.pos--;<br />
            scroll.pos--;<br />
            if (scroll.pos &lt; -(scroll.msg.length)) { scroll.reset(); } setTimeout<br />
            ('scroller()',scroll.delay);}<br />
            &lt;/script&gt;<br />
            &lt;/head&gt;<br />
            &lt;body onload="scroller()" bgcolor="#000000" link="#C0C0C0" vlink="#C0C0C0"<br />
            alink="#008080"<br />
            text="#C0C0C0"&gt;<br />
            &lt;table border="0" cellspacing="0" cellpadding="0"&gt;<br />
            &lt;tr&gt;<br />
            &lt;td width="100%"&gt;&lt;form NAME="noticeForm"&gt;<br />
            &lt;p&gt;&lt;input TYPE="text" name="notice" size="40" style="background-color: rgb(192,192,192)"&gt;&lt;/p&gt;<br />
            &lt;/form&gt;<br />
            &lt;/td&gt;<br />
            &lt;/tr&gt;<br />
            &lt;/table&gt;<br />
            &lt;/center&gt;&lt;/div&gt;<br />
            &lt;/body&gt;<br />
            &lt;/html&gt;<br />
            </td>
        </tr>
    </tbody>
</table>
<br />
范例2:颜色变化的例子。<br />
test5_2.htm<br />
<table border="1" cellpadding="10" bordercolor="#FFFFFF">
    <tbody>
        <tr>
            <td bgcolor="#CCCCCC" bordercolor="#333333" style="font-size: 9pt; ">&lt;html&gt;<br />
            &lt;head&gt;<br />
            &lt;script&gt;<br />
            &lt;!--<br />
            function makearray(n) {<br />
            this.length = n;<br />
            for(var i = 1; i &lt;= n; i++)<br />
            this[i] = 0;<br />
            return this;}<br />
            hexa = new makearray(16);<br />
            for(var i = 0; i &lt; 10; i++)<br />
            hexa[i] = i;<br />
            hexa[10]="a";<br />
            hexa[11]="b";<br />
            hexa[12]="c";<br />
            hexa[13]="d";<br />
            hexa[14]="e";<br />
            hexa[15]="f";<br />
            function hex(i) {<br />
            if (i &lt; 0)<br />
            return "00";<br />
            else if (i &gt; 255)<br />
            return "ff";<br />
            else return "" + hexa[Math.floor(i/16)] + hexa[i%16];}<br />
            function setbgColor(r, g, b) {<br />
            var hr = hex(r);<br />
            var hg = hex(g);<br />
            var hb = hex(b);<br />
            document.bgColor = "#"+hr+hg+hb;}<br />
            function fade(sr, sg, sb, er, eg, eb, step) {<br />
            for(var i = 0; i &lt;= step; i++) {<br />
            setbgColor( Math.floor(sr * ((step-i)/step) + er * (i/step)),<br />
            Math.floor(sg * ((step-i)/step) + eg * (i/step)), Math.floor(sb *<br />
            ((step-i)/step) + eb * (i/step))); }}<br />
            function fadein() {<br />
            fade(255,0,0,0,0,255,100);<br />
            fade(0,0,255,0,255,0,100);<br />
            fade(0,255,0, 0,0,0, 100);}<br />
            fadein();<br />
            // --&gt;<br />
            &lt;/script&gt;<br />
            &lt;body&gt;<br />
            &lt;/body&gt;<br />
            &lt;/html&gt;<br />
            </td>
        </tr>
    </tbody>
</table>
<br />
本讲介绍了用户自行创建对象的方法, 用户可根据需要创建自己的对象。并介绍了JavaScript中建数组的方法。<br />
</span>
<img src ="http://www.blogjava.net/dm520/aggbug/306673.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dm520/" target="_blank">dm520</a> 2009-12-19 15:48 <a href="http://www.blogjava.net/dm520/articles/306673.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>基于对象的JavaScript语言</title><link>http://www.blogjava.net/dm520/articles/306672.html</link><dc:creator>dm520</dc:creator><author>dm520</author><pubDate>Sat, 19 Dec 2009 07:47:00 GMT</pubDate><guid>http://www.blogjava.net/dm520/articles/306672.html</guid><wfw:comment>http://www.blogjava.net/dm520/comments/306672.html</wfw:comment><comments>http://www.blogjava.net/dm520/articles/306672.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dm520/comments/commentRss/306672.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dm520/services/trackbacks/306672.html</trackback:ping><description><![CDATA[<span  style="font-size: 14px; line-height: 22px; ">JavaScript语言是基于对象的（Object-Based），而不是面向对象的（object-oriented）。之所以说它是一门基于对象的语言，主要是因为它没有提供象抽象、继承、重载等有关面向对象语言的许多功能。而是把其它语言所创建的复杂对象统一起来，从而形成一个非常强大的对象系统。 　　　　虽然JavaScript语言是一门基于对象的，但它还是具有一些面向对象的基本特征。它可以根据需要创建自己的对象，从而进一步扩大JavaScript的应用范围，增强编写功能强大的Web文档。<br />
<br />
<strong>一、对象的基础知识</strong><br />
<font color="#FF0000">1、对象的基本结构</font><br />
JavaScript中的对象是由属性(properties)和方法(methods)两个基本的元素的构成的。前者是对象在实施其所需要行为的过程中，实现信息的装载单位，从而与变量相关联；后者是指对象能够按照设计者的意图而被执行，从而与特定的函数相联。<br />
<br />
<font color="#FF0000">2、引用对象的途径</font><br />
一个对象要真正地被使用，可采用以下几种方式获得：<br />
o 引用JavaScript内部对象；<br />
o 由浏览器环境中提供；<br />
o 创建新对象。<br />
这就是说一个对象在被引用之前，这个对象必须存在，否则引用将毫无意义，而出现错误信息。从上面中我们可以看出JavaScript引用对象可通过三种方式获取。要么创建新的对象，要么利用现存的对象。<br />
<br />
<font color="#FF0000">３、有关对象操作语句</font><br />
JavaScript不是一纯面向对象的语言，它设有提供面向对象语言的许多功能，因此JavaScript设计者之所以把它你&#8220;基于对象&#8221;而不是面向对象的语言，在JavaScript中提供了几个用于操作对象的语句和关键字及运算符。<br />
（1） For...in语句<br />
格式如下：<br />
For（对象属性名 in 已知对象名）<br />
<font color="#0000FF">说明：<br />
o 该语句的功能是用于对已知对象的所有属性进行操作的控制循环。它是将一个已知对象的所有属性反复置给一个变量；而不是使用计数器来实现的。<br />
o 该语句的优点就是无需知道对象中属性的个数即可进行操作。</font><br />
例：下列函数是显示数组中的内容：<br />
<table border="1" cellpadding="10" bordercolor="#FFFFFF">
    <tbody>
        <tr>
            <td bgcolor="#CCCCCC" bordercolor="#333333" style="font-size: 9pt; ">Function showData(object)<br />
            for (var X=0; X&lt;30;X++)<br />
            document.write(object[i])；<br />
            </td>
        </tr>
    </tbody>
</table>
该函数是通过数组下标顺序值，来访问每个对象的属性，使用这种方式首先必须知道数组的下标值，否则若超出范围，则就会发生错误。而使For...in语句，则根本不需要知道对象属性的个数，见下：<br />
<table border="1" cellpadding="10" bordercolor="#FFFFFF">
    <tbody>
        <tr>
            <td bgcolor="#CCCCCC" bordercolor="#333333" style="font-size: 9pt; ">Function showData(object)<br />
            for(var prop in object)<br />
            document.write(object[prop])；<br />
            </td>
        </tr>
    </tbody>
</table>
使用该函数时，在循环体中，For自动将的属性取出来，直到最后为此。<br />
（2） with语句<br />
使用该语句的意思是：在该语句体内，任何对变量的引用被认为是这个对象的属性，以节省一些代码。<br />
with object{<br />
...}<br />
所有在with语句后的花括号中的语句，都是在后面object对象的作用域的。<br />
（3） this关键字<br />
this是对当前的引用，在JavaScript由于对象的引用是多层次，多方位的，往往一个对象的引用又需要对另一个对象的引用，而另一个对象有可能又要引用另一个对象，这样有可能造成混乱，最后自己已不知道现在引用的那一个对象，为此JavaScript提供了一个用于将对象指定当前对象的语句this。<br />
（4） New运算符<br />
虽然在JavaScript中对象的功能已经是非常强大的了。但更强大的是设计人员可以按照需求来创建自己的对象，以满足某一特定的要求。使用New运算符可以创建一个新的对象。其创建对象使用如下格式：<br />
Newobject=NEW Object(Parameters table);<br />
其中Newobject创建的新对象：object是已经存在的对象； parameters table参数表；new是JavaScript中的命令语句。<br />
如创建一个日期新对象<br />
newData=New Data()<br />
birthday=New Data (December 12.1998)<br />
之后就可使NewData、birthday作为一个新的日期对象了。<br />
<br />
<font color="#FF0000">４、对象属性的引用</font><br />
对象属性的引用可由下列三种方式之一实现：<br />
（1）使用点（.）运算符<br />
<table border="1" cellpadding="10" bordercolor="#FFFFFF">
    <tbody>
        <tr>
            <td bgcolor="#CCCCCC" bordercolor="#333333" style="font-size: 9pt; ">university.Name=&#8220;云南省&#8221;<br />
            university.city=&#8220;昆明市&#8221;<br />
            university.Date="1999"<br />
            </td>
        </tr>
    </tbody>
</table>
其中university是一个已经存在的对象，Name、City、Date是它的三个属性，并通过操作对其赋值。<br />
（2）通过对象的下标实现引用<br />
<table border="1" cellpadding="10" bordercolor="#FFFFFF">
    <tbody>
        <tr>
            <td bgcolor="#CCCCCC" bordercolor="#333333" style="font-size: 9pt; ">university[0]=&#8220;云南&#8221;<br />
            university[1]=&#8220;昆明市&#8221;<br />
            university[2]="1999"<br />
            </td>
        </tr>
    </tbody>
</table>
通过数组形式的访问属性，可以使用循环操作获取其值。<br />
<table border="1" cellpadding="10" bordercolor="#FFFFFF">
    <tbody>
        <tr>
            <td bgcolor="#CCCCCC" bordercolor="#333333" style="font-size: 9pt; ">function showunievsity(object)<br />
            for (var j=0;j&lt;2; j++)<br />
            document.write(object[j])<br />
            </td>
        </tr>
    </tbody>
</table>
若采用For...in则可以不知其属性的个数后就可以实现：<br />
<table border="1" cellpadding="10" bordercolor="#FFFFFF">
    <tbody>
        <tr>
            <td bgcolor="#CCCCCC" bordercolor="#333333" style="font-size: 9pt; ">Function showmy(object)<br />
            for (var prop in this)<br />
            docament.write(this[prop]);<br />
            </td>
        </tr>
    </tbody>
</table>
（3）通过字符串的形式实现<br />
<table border="1" cellpadding="10" bordercolor="#FFFFFF">
    <tbody>
        <tr>
            <td bgcolor="#CCCCCC" bordercolor="#333333" style="font-size: 9pt; ">university["Name"]=&#8220;云南&#8221;<br />
            university["City"]=&#8220;昆明市&#8221;<br />
            university["Date"]="1999"<br />
            </td>
        </tr>
    </tbody>
</table>
<br />
<font color="#FF0000">５、对象的方法的引用</font><br />
在JavaScript中对象方法的引用是非常简单的。<br />
ObjectName.methods()<br />
实际上methods()=FunctionName方法实质上是一个函数。 如引用university对象中的showmy（）方法，则可使用：<br />
document.write (university.showmy())<br />
或：document.write(university)<br />
如引用math内部对象中cos()的方法<br />
则：<br />
with(math)<br />
document.write(cos(35));<br />
document.write(cos(80));<br />
若不使用with则引用时相对要复杂些：<br />
document.write(Math.cos(35))<br />
document.write(math.sin(80))<br />
<br />
<strong>二、常用对象的属性和方法</strong><br />
JavaScript为我们提供了一些非常有用的常用内部对象和方法。用户不需要用脚本来实现这些功能。这正是基于对象编程的真正目的。<br />
在JavaScript提供了string（字符串）、math（数值计算）和Date（日期）三种对象和其它一些相关的方法。从而为编程人员快速开发强大的脚本程序提供了非常有利的条件。<br />
<br />
<font color="#FF0000">1、常用内部对象</font><br />
在JavaScript中对于对象属性与方法的引用，有两种情况：其一是说该对象是静态对象，即在引用该对象的属性或方法时不需要为它创建实例；而另一种对象则在引用它的对象或方法是必须为它创建一个实例，即该对象是动态对象。<br />
对JavaScript内部对象的引用，以是紧紧围绕着它的属性与方法进行的。因而明确对象的静动性对于掌握和理解JavaScript内部对象是具有非常重要的意义。<br />
<br />
<font color="#FF00FF">１)、串对象</font><br />
o string对象：内部静态性。<br />
o 访问properties和methods时，可使用（.）运算符实现。<br />
o 基本使用格式：objectName.prop/methods<br />
（１）串对象的属性<br />
该对象只有一个属性，即length。它表明了字符串中的字符个数，包括所有符号。<br />
例：<br />
mytest="This is a JavaScript"<br />
mystringlength=mytest.length<br />
最后mystringlength返回mytest字串的长度为20。<br />
（２）串对象的方法<br />
string对象的方法共有１９个。主要用于有关字符串在Web页面中的显示、字体大小、字体颜色、字符的搜索以及字符的大小写转换。<br />
其主要方法如下：<br />
o 锚点anchor()：该方法创建如用Html文档中一样的anchor标记。使用anchor如用Html中(A Name="")一样。通过下列格式访问:string.anchor(anchorName)。<br />
o 有关字符显示的控制方法<br />
big字体显示, Italics()斜体字显示，bold()粗体字显示，blink()字符闪烁显示，small（）字符用小体字显示，fixed()固定高亮字显示、fontsize(size)控制字体大小等。<br />
o 字体颜色方法；fontcolor(color)<br />
o 字符串大小写转换<br />
toLowerCase()－小写转换，toUpperCase()大写转换。下列把一个给定的串分别转换成大写和小写格式:<br />
string=stringValue.toUpperCase和string=stringValue.toLowerCase。<br />
o 字符搜索：indexOf[charactor,fromIndex]<br />
从指定formIndtx位置开始搜索charactor第一次出现的位置。<br />
返回字串的一部分字串：substring(start,end)<br />
从start开始到end的字符全部返回。<br />
<br />
<font color="#FF00FF">２)、算术函数的math对象</font><br />
功能：提供除加、减、乘、除以外的一引些自述运算。如对数，平方根等 。<br />
静动性：静态对象<br />
（１）主要属性<br />
math中提供了６个属性，它们是数学中经常用到的常数Ｅ、以１０为底的自然对数ＬＮ１０、以２为底的自然对数LN2、3.14159的PI、1/2的平方根SQRT1-2,2的平方根为SQRT2。<br />
（２）主要方法<br />
绝对值：abs()<br />
正弦余弦值：sin(),cos()<br />
反正弦反余弦 :asin(), acos()<br />
正切反正切：tan(),atan()<br />
四舍五入：round()<br />
平方根：sqrt()<br />
基于几方次的值：Pow(base,exponent)<br />
...<br />
<font color="#FF00FF">３)、日期及时间对象</font><br />
功能：提供一个有关日期和时间的对象。<br />
静动性：动态性，即必须使用New运算符创建一个实例。例:<br />
MyDate=New Date()<br />
Date对象没有提供直接访问的属性。只具有获取和设置日期和时间的方法。<br />
日期起始值:１７７０年１月１日００:００:００。<br />
1. 获取日期的时间方法<br />
getYear(): 返回年数<br />
getMonth():返回当月号数<br />
getDate(): 返回当日号数<br />
getDay():返回星期几<br />
getHours():返回小时数<br />
getMintes(:返回分钟数<br />
getSeconds():返回秒数<br />
getTime() : 返回毫秒数<br />
（２）设置日期和时间：<br />
setYear();设置年<br />
setDate():设置当月号数<br />
setMonth():设置当月份数<br />
setHours():设置小时数<br />
setMintes():设置分钟数<br />
setSeconds():设置秒数<br />
setTime ():设置毫秒数<br />
...<br />
<font color="#FF0000">2、JavaScript中的系统函数</font><br />
JavaScript中的系统函数又称内部方法。它提供了与任何对象无关的系统函数，使用这些函数不需创建任何实例,可直接用。<br />
1．返回字符串表达式中的值：<br />
方法名：eval（字串表达式），例：<br />
test=eval("8+9+5/2");<br />
2. 返回字符串ASCI码：<br />
方法名：unEscape (string)<br />
3．返回字符的编码：<br />
方法名：escape(character)<br />
4．返回实数：<br />
parseFloat(floustring);<br />
5．返回不同进制的数：<br />
parseInt(numbestring ,rad.X)<br />
其中radix是数的进制，numbs字符串数<br />
<br />
<strong>三、范例</strong><br />
下面是一个时钟显示的JavaScript文档。在文档中用了非常多的函数。<br />
Test4_1.htm<br />
<table border="1" cellpadding="10" bordercolor="#FFFFFF">
    <tbody>
        <tr>
            <td bgcolor="#CCCCCC" bordercolor="#333333" style="font-size: 9pt; ">&lt;html&gt;<br />
            &lt;head&gt;<br />
            &lt;style TYPE="text/css"&gt;<br />
            &lt;style&gt;<br />
            &lt;/style&gt;<br />
            &lt;title&gt;时钟&lt;/title&gt;<br />
            &lt;script LANGUAGE="JavaScript"&gt;<br />
            function showClock() {<br />
            }<br />
            function hideClock() {<br />
            }<br />
            var timerID = null<br />
            var timerRunning = false<br />
            function stopClock() {<br />
            if(timerRunning)<br />
            clearTimeout(timerID);<br />
            timerRunning = false<br />
            document.clock.face.value = "";<br />
            }<br />
            function showTime() {<br />
            var now = new Date();<br />
            var year = now.getYear();<br />
            var month = now.getMonth() + 1;<br />
            var date = now.getDate();<br />
            var hours = now.getHours();<br />
            var mins = now.getMinutes();<br />
            var secs = now.getSeconds();<br />
            var timeVal = "";<br />
            timeVal += ((hours &lt;= 12) ? hours : hours - 12);<br />
            timeVal += ((mins &lt; 10) ? ":0" : ":") + mins;<br />
            timeVal += ((secs &lt;= 10) ? ":0" : ":") + secs;<br />
            timeVal += ((hours &lt; 12) ? "AM" : "PM");<br />
            timeVal += ((month &lt; 10) ? " on 0" : " on ") + month + "-";<br />
            timeVal += date + "-" + year;<br />
            document.clock.face.value = timeVal;<br />
            timerID = setTimeout("showTime()", 1000);<br />
            timerRunning = true<br />
            }<br />
            function startClock() {<br />
            stopClock();<br />
            showTime();<br />
            }<br />
            <br />
            function windowOpener( indexnum ){<br />
            var loadpos="date.html"+"#"+indexnum;<br />
            controlWindow=window.open(loadpos,"date","toolbar=no,location=no,<br />
            directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,<br />
            width=620,height=400");<br />
            }<br />
            &lt;/script&gt;<br />
            &lt;/head&gt;<br />
            &lt;body onLoad="startClock()" &gt;<br />
            &lt;p align="center"&gt;&lt;big&gt;&lt;span style="background-color: rgb(45,45,45)"&gt;<br />
            &lt;font face="Arial"&gt;form&lt;/font&gt; &amp;nbsp; &lt;font face="宋体"&gt;时钟&lt;/font&gt;<br />
            &lt;/span&gt;&lt;/big&gt;&lt;/p&gt;<br />
            &lt;p align="center"&gt;　&lt;/p&gt;<br />
            &lt;div align="center"&gt;&lt;center&gt;<br />
            &lt;table border="0" cellspacing="0" cellpadding="0"&gt;<br />
            &lt;tr&gt;<br />
            &lt;td width="100%"&gt;&lt;form NAME="clock" onSubmit="0"&gt;<br />
            &lt;div align="center"&gt;&lt;center&gt;&lt;p&gt;&lt;input TYPE="text" NAME="face" size="20"<br />
            VALUE style="background-color: rgb(192,192,192)"&gt; &lt;/p&gt;<br />
            &lt;/center&gt;&lt;/div&gt;<br />
            &lt;/form&gt;<br />
            &lt;/td&gt;<br />
            &lt;/tr&gt;<br />
            &lt;/table&gt;<br />
            &lt;/center&gt;&lt;/div&gt;<br />
            &lt;/body&gt;<br />
            &lt;/html&gt;<br />
            </td>
        </tr>
    </tbody>
</table>
本讲介绍了基于对象的JavaScript中常用内部对象属性、方法的使用。</span>
<img src ="http://www.blogjava.net/dm520/aggbug/306672.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dm520/" target="_blank">dm520</a> 2009-12-19 15:47 <a href="http://www.blogjava.net/dm520/articles/306672.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaScript程序构成</title><link>http://www.blogjava.net/dm520/articles/306671.html</link><dc:creator>dm520</dc:creator><author>dm520</author><pubDate>Sat, 19 Dec 2009 07:45:00 GMT</pubDate><guid>http://www.blogjava.net/dm520/articles/306671.html</guid><wfw:comment>http://www.blogjava.net/dm520/comments/306671.html</wfw:comment><comments>http://www.blogjava.net/dm520/articles/306671.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dm520/comments/commentRss/306671.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dm520/services/trackbacks/306671.html</trackback:ping><description><![CDATA[<span  style="font-size: 14px; line-height: 22px; ">　JavaScript脚本语言的基本构成是由控制语句、函数、对象、方法、属性等,来实现编程的。<br />
<br />
<strong>一、程序控制流</strong><br />
在任何一种语言中，程序控制流是必须的，它能使得整个程序减小混乱，使之顺利按其一定的方式执行。下面是JavaScript常用的程序控制流结构及语句:<br />
<font color="#FF0000">１、if条件语句</font><br />
基本格式<br />
if（表述式）<br />
语句段１；<br />
......<br />
else<br />
语句段２；<br />
.....<br />
功能：若表达式为true，则执行语句段１；否则执行语句段２。<br />
<font color="#0000FF">说明：<br />
if -else 语句是JavaScript中最基本的控制语句，通过它可以改变语句的执行顺序。<br />
表达式中必须使用关系语句，来实现判断，它是作为一个布尔值来估算的。<br />
它将零和非零的数分别转化成false和true。<br />
若if后的语句有多行，则必须使用花括号将其括起来。</font><br />
<br />
if语句的嵌套<br />
if（布尔值）语句１；<br />
else（布尔值）语句２；<br />
else if（布尔值）语句３；<br />
&#8230;&#8230;<br />
else 语句４；<br />
<br />
在这种情况下，每一级的布尔表述式都会被计算，若为真，则执行其相应的语句，否则执行else后的语句。<br />
<br />
<font color="#FF0000">２、For循环语句</font><br />
基本格式<br />
for（初始化；条件；增量）<br />
语句集；<br />
功能：实现条件循环，当条件成立时，执行语句集，否则跳出循环体。<br />
<font color="#0000FF">说明：<br />
初始化参数告诉循环的开始位置，必须赋予变量的初值；<br />
条件：是用于判别循环停止时的条件。若条件满足，则执行循环体，否则 跳出。<br />
增量：主要定义循环控制变量在每次循环时按什么方式变化。<br />
三个主要语句之间，必须使用逗号分隔。</font><br />
<br />
<font color="#FF0000">３、while循环</font><br />
基本格式<br />
while（条件）<br />
语句集；<br />
该语句与For语句一样，当条件为真时，重复循环，否则退出循环。<br />
For与while语句<br />
两种语句都是循环语句，使用For语句在处理有关数字时更易看懂，也较紧凑；而while循环对复杂的语句效果更特别。<br />
<br />
<font color="#FF0000">４、break和continue语句</font><br />
与C++语言相同，使用break语句使得循环从For或while中跳出，continue使得跳过循环内剩余的语句而进入下一次循环。<br />
<br />
<strong>二、函数</strong><br />
函数为程序设计人员提供了一个丰常方便的能力。通常在进行一个复杂的程序设计时，总是根据所要完成的功能，将程序划分为一些相对独立的部分，每部分编写一个函数。从而，使各部分充分独立，任务单一，程序清晰，易懂、易读、易维护。JavaScript函数可以封装那些在程序中可能要多次用到的模块。并可作为事件驱动的结果而调用的程序。从而实现一个函数把它与事件驱动相关联。这是与其它语言不样的地方。<br />
<br />
<font color="#FF0000">１、JavaScript函数定义</font><br />
Function 函数名 （参数,变元）{<br />
函数体;.<br />
Return 表达式;<br />
}<br />
<font color="#0000FF">说明：<br />
当调用函数时,所用变量或字面量均可作为变元传递。<br />
函数由关键字Function定义。<br />
函数名：定义自己函数的名字。<br />
参数表，是传递给函数使用或操作的值，其值可以是常量 ，变量或其它表达式。<br />
通过指定函数名（实参）来调用一个函数。<br />
必须使用Return将值返回。<br />
函数名对大小写是敏感的。</font><br />
<br />
<font color="#FF0000">２、函数中的形式参数：</font><br />
在函数的定义中，我们看到函数名后有参数表，这些参数变量可能是一个或几个。那么怎样才能确定参数变量的个数呢？在JavaScript中可通过arguments .Length来检查参数的个数。<br />
例：<br />
<table border="1" cellpadding="10" bordercolor="#FFFFFF">
    <tbody>
        <tr>
            <td bgcolor="#CCCCCC" bordercolor="#333333" style="font-size: 9pt; ">Function function_Name(exp1,exp2,exp3,exp4)<br />
            Number =function _Name . arguments .length;<br />
            if (Number&gt;1）<br />
            document.wrile(exp2);<br />
            if (Number&gt;2)<br />
            document.write(exp3);<br />
            if(Number&gt;3)<br />
            document.write(exp4);<br />
            ...<br />
            </td>
        </tr>
    </tbody>
</table>
<br />
<strong>三、事件驱动及事件处理</strong><br />
<font color="#FF0000">１、基本概念</font><br />
JavaScript是基于对象(object-based)的语言。这与Java不同,Java是面向对象的语言。而基于对象的基本特征，就是采用事件驱动(event-driven)。它是在用形界面的环境下，使得一切输入变化简单化。通常鼠标或热键的动作我们称之为事件（Event），而由鼠标或热键引发的一连串程序的动作，称之为事件驱动（Event Driver）。而对事件进行处理程序或函数，我们称之为事件处理程序（Event Handler）。<br />
<br />
<font color="#FF0000">２、事件处理程序</font><br />
在JavaScript中对象事件的处理通常由函数(Function)担任。其基本格式与函数全部一样，可以将前面所介绍的所有函数作为事件处理程序。<br />
格式如下：<br />
Function 事件处理名（参数表）{<br />
事件处理语句集；<br />
&#8230;&#8230;<br />
}<br />
<br />
<font color="#FF0000">３、事件驱动</font><br />
JavaScript事件驱动中的事件是通过鼠标或热键的动作引发的。它主要有以下几个事件：<br />
（１）单击事件onClick<br />
当用户单击鼠标按钮时，产生onClick事件。同时onClick指定的事件处理程序或代码将被调用执行。通常在下列基本对象中产生：<br />
button（按钮对象）<br />
checkbox（复选框）或（检查列表框）<br />
radio （单选钮）<br />
reset buttons（重要按钮）<br />
submit buttons（提交按钮）<br />
<br />
例：可通过下列按钮激活change()文件：<br />
<table border="1" cellpadding="10" bordercolor="#FFFFFF">
    <tbody>
        <tr>
            <td bgcolor="#CCCCCC" bordercolor="#333333" style="font-size: 9pt; ">&lt;Form&gt;<br />
            &lt;Input type="button" Value=&#8220; &#8221; onClick="change()"&gt;<br />
            &lt;/Form&gt;<br />
            </td>
        </tr>
    </tbody>
</table>
在onClick等号后，可以使用自己编写的函数作为事件处理程序，也可以使用JavaScript中内部的函数。还可以直接使用JavaScript的代码等。例：<br />
&lt;Input type="button" value=" " onclick=alert("这是一个例子"）;<br />
（２）onChange改变事件<br />
当利用text或texturea元素输入字符值改变时发该事件，同时当在select表格项中一个选项状态改变后也会引发该事件。<br />
例：<br />
<table border="1" cellpadding="10" bordercolor="#FFFFFF">
    <tbody>
        <tr>
            <td bgcolor="#CCCCCC" bordercolor="#333333" style="font-size: 9pt; ">&lt;Form&gt;<br />
            &lt;Input type="text" name="Test" value="Test" onCharge="check('this.test)"&gt;<br />
            &lt;/Form&gt;<br />
            </td>
        </tr>
    </tbody>
</table>
（３）选中事件onSelect<br />
当Text或Textarea对象中的文字被加亮后，引发该事件。<br />
（４）获得焦点事件onFocus<br />
当用户单击Text或textarea以及select对象时，产生该事件。此时该对象成为前台对象。<br />
（５）失去焦点onBlur<br />
当text对象或textarea对象以及select对象不再拥有焦点、而退到后台时，引发该文件，他与onFocas事件是一个对应的关系。<br />
（６）载入文件onLoad<br />
当文档载入时，产生该事件。onLoad一个作用就是在首次载入一个文档时检测cookie的值，并用一个变量为其赋值，使它可以被源代码使用。<br />
（７）卸载文件onUnload<br />
当Web页面退出时引发onUnload事件，并可更新Cookie的状态。<br />
四、范例<br />
范例1：下例程序是一个自动装载和自动卸载的例子。即当装入HTML文档时调用loadform()函数,而退出该文档进入另一HTML文档时则首先调用unloadform()函数,确认后方可进入。<br />
<table border="1" cellpadding="10" bordercolor="#FFFFFF">
    <tbody>
        <tr>
            <td bgcolor="#CCCCCC" bordercolor="#333333" style="font-size: 9pt; ">test3_1.htm<br />
            &lt;HTML&gt;<br />
            &lt;HEAD&gt;<br />
            &lt;script Language="JavaScript"&gt;<br />
            &lt;!--<br />
            function loadform(){<br />
            alert("这是一个自动装载例子!");<br />
            }<br />
            function unloadform(){<br />
            alert("这是一个卸载例子!");<br />
            }<br />
            //--&gt;<br />
            &lt;/Script&gt;<br />
            &lt;/HEAD&gt;<br />
            &lt;BODY OnLoad="loadform()" OnUnload="unloadform()"&gt;<br />
            &lt;a href="test.htm"&gt;调用&lt;/a&gt;<br />
            &lt;/BODY&gt;<br />
            &lt;/HTML&gt;<br />
            </td>
        </tr>
    </tbody>
</table>
<br />
范例2：这是一个获取浏览器版本号的程序。该程序首先显示一个波浪一提示信息。之后显示浏览器的版本号有关信息。<br />
test3_2.htm<br />
<table border="1" cellpadding="10" bordercolor="#FFFFFF">
    <tbody>
        <tr>
            <td bgcolor="#CCCCCC" bordercolor="#333333" style="font-size: 9pt; ">&lt;html&gt;<br />
            &lt;head&gt;<br />
            &lt;script language="JavaScript"&gt;&lt;!--<br />
            // --&gt;<br />
            function makeArray(n){<br />
            this.length=n<br />
            return this<br />
            }<br />
            function hexfromdec(num) {<br />
            hex=new makeArray(1);<br />
            var hexstring="";<br />
            var shifthex=16;<br />
            var temp1=num;<br />
            for(x=1; x&gt;=0; x--) {<br />
            hex[x]=Math.round(temp1/shifthex - .5);<br />
            hex[x-1]=temp1 - hex[x] * shifthex;<br />
            temp1=hex[x-1];<br />
            shifthex /= 16;<br />
            }<br />
            for (x=1; x&gt;=0; x--) { hexstring+=getletter(hex[x]); }<br />
            return (hexstring);<br />
            }<br />
            <br />
            function getletter(num) {<br />
            if (num &lt; 10) { return num; }<br />
            else {<br />
            if (num == 10) { return "A" }<br />
            if (num == 11) { return "B" }<br />
            if (num == 12) { return "C" }<br />
            if (num == 13) { return "D" }<br />
            if (num == 14) { return "E" }<br />
            if (num == 15) { return "F" }<br />
            }<br />
            }<br />
            function rainbow(text){<br />
            var color_d1;<br />
            var allstring="";<br />
            for(i=0;i&lt;text.length;i=i+2){<br />
            color_d1=255*Math.sin(i/(text.length/3));<br />
            color_h1=hexfromdec(color_d1);<br />
            allstring+="&lt;FONT COLOR="+color_h1+"ff"+color_h1+"&gt;"+text.substring(i,i+2)+"&lt;/FONT&gt;";<br />
            }<br />
            return allstring;<br />
            }<br />
            <br />
            function sizefont(text){<br />
            var color_d1;<br />
            var allstring="";<br />
            var flag=0;<br />
            for(i=0,j=0;i&lt;text.length;i=i+1){<br />
            if (flag==0) {<br />
            j++;<br />
            if (j&gt;=7) {<br />
            flag=1;}}<br />
            if (flag==1) {<br />
            j=j-1;<br />
            if (j&lt;=0) {<br />
            flag=0; }}<br />
            allstring+="&lt;FONT SIZE="+ j + "&gt;" + text.substring(i,i+1) + "&lt;/FONT&gt;";<br />
            }<br />
            return allstring;<br />
            }<br />
            document.write("&lt;font size=8&gt;&lt;CENTER&gt;")<br />
            document.write("&lt;BR&gt;&lt;BR&gt;")<br />
            document.write( sizefont("这是一个获取WEB浏览器的程序"))<br />
            document.write("&lt;/CENTER&gt;&lt;/font&gt;")<br />
            document.write("浏览器名称: "+navigator.appName+"&lt;br&gt;");<br />
            document.write("版本号: "+navigator.appVersion+"&lt;br&gt;");<br />
            document.write("代码名字: "+navigator.appCodeName+"&lt;br&gt;");<br />
            document.write("用户代理标识: "+navigator.userAgent);<br />
            &lt;/script&gt;<br />
            &lt;body&gt;<br />
            &lt;/body&gt;<br />
            &lt;/html&gt;<br />
            </td>
        </tr>
    </tbody>
</table>
输出结果图1所示。<br />
<p align="center" style="font-size: 12px; line-height: 22px; ">　<img src="http://www8.ccidnet.com/school/web//2001/04/29/image/jImage31.gif"  alt="" /><br />
图1</p>
<br />
本讲介绍了JavaScript程序设计的有关内容。程序流、函数、事件是我们学习掌握JavaScript编程的重点。</span>
<img src ="http://www.blogjava.net/dm520/aggbug/306671.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dm520/" target="_blank">dm520</a> 2009-12-19 15:45 <a href="http://www.blogjava.net/dm520/articles/306671.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaScript基本数据结构</title><link>http://www.blogjava.net/dm520/articles/306669.html</link><dc:creator>dm520</dc:creator><author>dm520</author><pubDate>Sat, 19 Dec 2009 07:42:00 GMT</pubDate><guid>http://www.blogjava.net/dm520/articles/306669.html</guid><wfw:comment>http://www.blogjava.net/dm520/comments/306669.html</wfw:comment><comments>http://www.blogjava.net/dm520/articles/306669.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dm520/comments/commentRss/306669.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dm520/services/trackbacks/306669.html</trackback:ping><description><![CDATA[<span  style="font-size: 14px; line-height: 22px; ">JavaScript提供脚本语言的编程与C++非常相似，它只是去掉了Ｃ语言中有关指针等容易产生的错误，并提供了功能强大的类库。对于已经具备Ｃ++或Ｃ语言的人来说，学习JavaScript脚本语言是一件非常轻松愉快的事。&nbsp;<br />
<br />
<strong><font color="#FF0000">一、JavaScript代码的加入</font></strong><br />
JavaScript的脚本包括在HTML中，它成为HTML文档的一部分。与HTML标识相结合，构成了一个功能强大的Internet网上编程语言。可以直接将JavaScript脚本加入文档：<br />
<br />
<table width="75%" border="0">
    <tbody>
        <tr>
            <td bgcolor="#CCCCCC" style="font-size: 9pt; ">&lt;Script Language ="JavaScript"&gt;&nbsp;<br />
            JavaScript语言代码；<br />
            JavaScript 语言代码;&nbsp;<br />
            ....<br />
            &lt;/Script&gt;</td>
        </tr>
    </tbody>
</table>
<br />
<font color="#0000FF">说明：&nbsp;<br />
通过标识&lt;Script&gt;...&lt;/Script&gt;指明JavaScript脚本源代码将放入其间。<br />
通过属性Language ="JavaScript"说明标识中是使用的何种语言，这里是JavaScript语言, 表示在JavaScript中使用的语言。</font><br />
<br />
下面是将JavaScript脚本加入Web文档中的例子:<br />
Test2.html<br />
<table width="75%" border="0">
    <tbody>
        <tr>
            <td bgcolor="#CCCCCC" style="font-size: 9pt; ">&lt;HTML&gt;<br />
            &lt;Head&gt;<br />
            &lt;Script Language ="JavaScript"&gt;<br />
            document. Write("这是赛迪网互动学校");<br />
            document. close();<br />
            &lt;/Script&gt;<br />
            &lt;/Head&gt;<br />
            &lt;/HTML&gt;</td>
        </tr>
    </tbody>
</table>
<br />
在浏览器的窗口中调用test2.html，则显示&#8220;这是赛迪网互动学校&#8221;字串。见图2所示。<br />
<table width="100%" border="0">
    <tbody>
        <tr>
            <td height="262" style="font-size: 9pt; "><img src="http://www8.ccidnet.com/school/web//2001/04/29/image/jImage26.gif" width="212" height="230" vspace="5" hspace="10"  alt="" /><br />
            图2<br />
            </td>
            <td height="262" style="font-size: 9pt; "><font color="#0000FF">说明:&nbsp;<br />
            Document. write()是文档对象的输出函数，其功能是将括号中的字符或变量值输出到窗口；document. close()是将输出关闭。<br />
            可将&lt;Script&gt;...&lt;/Script&gt;标识放入head&gt;.. &lt;/Head&gt;或&lt;Body&gt; ...&lt;/Body&gt;之间。将JavaScript标识放置&lt;Head&gt;... &lt;/Head&gt;在头部之间，使之在主页和其余部分代码之前装载，从而可使代码的功能更强大；可以将JavaScript标识放置在&lt;Body&gt;... &lt;/Body&gt;主体之间以实现某些部分动态地创建文档。</font></td>
        </tr>
    </tbody>
</table>
<br />
<font color="#FF0000"><strong>二、基本数据类型</strong></font><br />
JavaScript脚本语言同其它语言一样，有它自身的基本数据类型、表达式和算术运算符以及程序的基本框架结构。JavaScript提供了四种基本的数据类型用来处理数字和文字, 而变量提供存放信息的地方, 表达式则可以完成较复杂的信息处理。<br />
<br />
<strong>1、基本数据类型</strong><br />
在JavaScript中四种基本的数据类型：数值（整数和实数）、字符串型（用&#8220;&#8221;号或&#8216;&#8217;括起来的字符或数值）、布尔型（使True或False表示）和空值。在JavaScript的基本类型中的数据可以是常量，也可以变量。由于JavaScript采用弱类型的形式，因而一个数据的变量或常量不必首先作声明，而是在使用或赋值时确定其数据的类型的。当然也可以先声明该数据的类型，它是通过在赋值时自动说明其数据类型的。<br />
<br />
<strong>2、常量&nbsp;</strong><br />
整型常量<br />
JavaScript的常量通常又称字面常量，它是不能改变的数据。其整型常量可以使用十六进制、八进制和十进制表示其值。<br />
实型常量<br />
实型常量是由整数部分加小数部分表示，如12.32、193.98 。可以使用科学或标准方法表示：5E7、4e5等。<br />
布尔值<br />
布尔常量只有两种状态：True或False。 它主要用来说明或代表一种状态或标志，以说明操作流程。它与Ｃ＋＋是不一样的,Ｃ＋＋可以用１或０表示其状态,而JavaScript只能用True或False表示其状态。<br />
字符型常量<br />
使用单引号（&#8216;）或双引号（&#8220;）括起来的一个或几个字符。如 "This is a book of JavaScript "、"3245"、"ewrt234234" 等。<br />
空值<br />
JavaScript中有一个空值null,表示什么也没有。如试图引用没有定义的变量,则返回一个Null值。<br />
特殊字符<br />
同Ｃ语言一样，JavaScript中同样以有些以反斜杠（／）开头的不可显示的特殊字符。通常称为控制字符。<br />
<br />
<strong>3、变量</strong><br />
变量的主要作用是存取数据、提供存放信息的容器。对于变量必须明确变量的命名、变量的类型、变量的声明及其变量的作用域。&nbsp;<br />
变量的命名<br />
JavaScript中的变量命名同其计算机语言非常相似，这里要注意以下两点：<br />
Ａ、必须是一个有效的变量，即变量以字母开头，中间可以出现数字如test1、text2等。除下划线（－）作为连字符外，变量名称不能有空格、（＋）、（－）、（，）或其它符号。<br />
Ｂ、不能使用JavaScript中的关键字作为变量。<br />
在JavaScript中定义了４０多个类键字，这些关键是JavaScript内部使用的，不能作为变量的名称。如Var、int、double、true不能作为变量的名称。<br />
在对变量命名时，最好把变量的意义与其代表的意思对应起来，以免出现错误。&nbsp;<br />
变量的类型<br />
在JavaScript中，变量可以用命令Var作声明:<br />
var mytest;<br />
该例子定义了一个mytest变量。但没有赋予它的值。<br />
Var mytest=&#8221;This is a book&#8221;<br />
该例子定义了一个mytest变量, 同时赋予了它的值。<br />
在JavaScript中，变量以可以不作声明，而在使用时再根据数据的类型来确其变量的类型。<br />
如：<br />
x=100&nbsp;<br />
y="125"&nbsp;<br />
xy= True&nbsp;<br />
cost=19.5等。<br />
其中x整数，y为字符串，xy为布尔型，cost为实型。&nbsp;<br />
变量的声明及其作用域<br />
JavaScript变量可以在使用前先作声明，并可赋值。通过使用var关键字对变量作声明。对变量作声明的最大好处就是能及时发现代码中的错误；因为JavaScript是采用动态编译的，而动态编译是不易发现代码中的错误，特别是变量命名的方面。<br />
对于变量还有一个重要性──那就是变量的作用域。在JavaScript中同样有全局变量和局部变量。全局变量是定义在所有函数体之外，其作用范围是整个函数；而局部变量是定义在函数体之内，只对其该函数是可见的，而对其它函数则是不可见的。<br />
<br />
<strong><font color="#FF0000">三、表达式和运算符</font></strong><br />
<br />
<strong>１、表达式</strong><br />
在定义完变量后，就可以对它们进行赋值、改变、计算等一系列操作，这一过程通常又叫称一个叫表达式来完成，可以说它是变量、常量、布尔及运算符的集合，因此表达式可以分为算术表述式、字串表达式、赋值表达式以及布尔表达式等。<br />
<br />
<strong>２、运算符</strong><br />
运算符完成操作的一系列符号，在JavaScript中有算术运算符，如＋、-、*、/等；有比较运算符如!＝、＝＝等; 有逻辑布尔运算符如！（取反）、|、||; 有字串运算如＋ 、 ＋＝等。<br />
在JavaScript主要有双目运算符和单目运算符。其双目运算符由下列组成：<br />
<font color="#FF00FF"><strong>操作数１ 运算符 操作数２</strong></font><br />
即由两个操作数和一个运算符组成。如50＋40、"This"+"that"等。单目运算符，只需一个操作数，其运算符可在前或后。<br />
（１）算术运算符<br />
JavaScript中的算术运算符有单目运算符和双目运算符。<br />
双目运算符：&nbsp;<br />
+（加） 、-（减）、 *（乘）、 /（除）、 %（取模） 、|（按位或）、&amp;(按位与)、&lt;&lt;（左移）、 &gt;&gt;（右移）、 &gt;&gt;&gt;（右移，零填充）。<br />
单目运算符：&nbsp;<br />
-（取反）、~（取补）、++（递加1）、--（递减1）。<br />
（２）比较运算符<br />
比较运算符它的基本操作过程是，首先对它的操作数进行比较，尔后再返回一个true或False值，有８个比较运算符:<br />
&lt;(小于)、&gt;(大于)、&lt;=(小于等于)、&gt;=(大于等于)、==(等于)、!=(不等于)。<br />
（３）布尔逻辑运算符<br />
在JavaScript中增加了几个布尔逻辑运算符:&nbsp;<br />
!（取反)、&amp;=（与之后赋值）、 &amp;（逻辑与）、 |=（或之后赋值）、 |（逻辑或）、 ^=（异或之后赋值）、 ^（逻辑异或）、 ?:（三目操作符）、||（或）、==(等于)、|=(不等于)。<br />
其中三目操作符主要格式如下：<br />
<font color="#FF00FF"><strong>操作数？结果１：结果２</strong></font><br />
若操作数的结果为真，则表述式的结果为结果１，否则为结果２。<br />
<br />
<strong><font color="#FF0000">四、范例</font></strong><br />
下面是一个跑马灯效果的JavaScript文档。<br />
<br />
Test2_1.html<br />
<table width="83%" border="0">
    <tbody>
        <tr>
            <td bgcolor="#CCCCCC" style="font-size: 9pt; ">&lt;html&gt;<br />
            &lt;head&gt;<br />
            &lt;script Language="JavaScript"&gt;<br />
            var msg="这是一个跑马灯效果的JavaScript文档";<br />
            var interval = 100;<br />
            var spacelen = 120;<br />
            var space10=" ";<br />
            var seq=0;<br />
            function Scroll() {&nbsp;<br />
            len = msg.length;<br />
            window.status = msg.substring(0, seq+1);<br />
            seq++;<br />
            if ( seq &gt;= len ) {&nbsp;<br />
            seq = spacelen;&nbsp;<br />
            window.setTimeout("Scroll2();", interval );<br />
            }<br />
            else<br />
            window.setTimeout("Scroll();", interval );<br />
            }&nbsp;<br />
            function Scroll2() {&nbsp;<br />
            var out="";<br />
            for (i=1; i&lt;=spacelen/space10.length; i++) out +=&nbsp;<br />
            space10;<br />
            out = out + msg;<br />
            len=out.length;<br />
            window.status=out.substring(seq, len);<br />
            seq++;<br />
            if ( seq &gt;= len ) { seq = 0; };<br />
            window.setTimeout("Scroll2();", interval );<br />
            }&nbsp;<br />
            Scroll();<br />
            &lt;/script&gt;<br />
            &lt;body&gt;<br />
            &lt;/body&gt;<br />
            &lt;/html&gt;</td>
        </tr>
    </tbody>
</table>
<br />
本文介绍了JavaScript脚本是如何加入Web页面, 并学习了JavaScript语言中的基本数据类型、变量、常量、操作运算符等。可以看出，对于已经掌握Ｃ＋＋语言的人来说，学习JavaScript真是一件非常轻松愉快的事。</span>
<img src ="http://www.blogjava.net/dm520/aggbug/306669.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dm520/" target="_blank">dm520</a> 2009-12-19 15:42 <a href="http://www.blogjava.net/dm520/articles/306669.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>JavaScript语言介绍</title><link>http://www.blogjava.net/dm520/articles/306668.html</link><dc:creator>dm520</dc:creator><author>dm520</author><pubDate>Sat, 19 Dec 2009 07:40:00 GMT</pubDate><guid>http://www.blogjava.net/dm520/articles/306668.html</guid><wfw:comment>http://www.blogjava.net/dm520/comments/306668.html</wfw:comment><comments>http://www.blogjava.net/dm520/articles/306668.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/dm520/comments/commentRss/306668.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/dm520/services/trackbacks/306668.html</trackback:ping><description><![CDATA[<span  style="font-size: 14px; line-height: 22px; ">Internet时代，造就了我们新的工作和生活方式，其互联性、开放性和共享信息的模式，打破了传统信息传播方式的重重壁垒，为我们带来了新的机遇。随着计算机和信息时代的到来，人类社会前进的脚步在逐渐加快，每一天都有新的事情发生，每一天都在创造着奇迹。随着Internet技术的突飞猛进，各行各业都在加入Internet的行业中来。无论从管理方面，还是从商业角度来看，Internet都可以带来无限生机。通过Internet，可以实现地区、集体乃至个人的连接，从而达到一种&#8220;统一的和谐&#8221;。那么怎样把自己的或公司的信息资源加入到WWW 服务器，是广大用户日益关心的问题。采用超链技术（超文本和超媒体技术）是实现这个目标最简单的、最快速的手段和途径。具体实现这种手段的支持环境，那就是HTML超文本标识语言。通过它们可制作所需的Web网页。<br />
通过超文本(Hyper Text)和超媒体(Hyper Media)技术结合超链接(Hyper link)的链接功能将各种信息组织成网络结构(web)，构成网络文档(Document)，实现Internet上的&#8220;漫游&#8221;。通过HTML符号的描述就可以实现文字、表格、声音、图像、动画等多媒体信息的检索。<br />
然而采用这种超链技术存在有一定的缺陷，那就是它只能提供一种静态的信息资源，缺少动态的客户端与服务器端的交互。虽然可通过CGI(Common Gateway Interface)通用网关接口实现一定的交互，但由于该方法编程较为复杂，因而在一段时间防碍了Internet技术的发展。而JavaScript的出现，无凝为Internet网上用户带来了一线生机。可以这样说,JavaScript的出现是时代的需求,是当今的信息时代造就了JavaScript。<br />
JavaScript的出现，它可以使得信息和用户之间不仅只是一种显示和浏览的关系，而是实现了一种实时的、动态的、可交式的表达能力。从而基于CGI静态的HTML页面将被可提供动态实时信息，并对客户操作进行反应的Web页面的取代。JavaScript脚本正是满足这种需求而产生的语言。它深受广泛用户的喜爱的欢迎。它是众多脚本语言中较为优秀的一种，它与WWW的结合有效地实现了网络计算和网络计算机的蓝图。无凝Java家族将占领Internet网络的主导地位。因此，尽快掌握JavaScript脚本语言编程方法是我国广大用户日益关心的。<br />
<br />
<strong><font color="#FF0000">一、什么是JavaScript</font></strong><br />
JavaScript是一种基于对象(Object)和事件驱动(Event Driven)并具有安全性能的脚本语言。使用它的目的是与HTML超文本标记语言、Java 脚本语言（Java小程序）一起实现在一个Web页面中链接多个对象，与Web客户交互作用。从而可以开发客户端的应用程序等。它是通过嵌入或调入在标准的HTML语言中实现的。它的出现弥补了HTML语言的缺陷，它是Java与HTML折衷的选择，具有以下几个基本特点：<br />
<br />
<strong>脚本编写语言</strong><br />
JavaScript是一种脚本语言，它采用小程序段的方式实现编程。像其它脚本语言一样,JavaScript同样已是一种解释性语言，它提供了一个易的开发过程。&nbsp;<br />
它的基本结构形式与C、C++、VB、Delphi十分类似。但它不像这些语言一样，需要先编译，而是在程序运行过程中被逐行地解释。它与HTML标识结合在一起，从而方便用户的使用操作。&nbsp;<br />
<br />
<strong>基于对象的语言</strong><br />
JavaScript是一种基于对象的语言，同时以可以看作一种面向对象的。这意味着它能运用自己已经创建的对象。因此，许多功能可以来自于脚本环境中对象的方法与脚本的相互作用。<br />
<br />
<strong>简单性</strong><br />
JavaScript的简单性主要体现在：首先它是一种基于Java基本语句和控制流之上的简单而紧凑的设计, 从而对于学习Java是一种非常好的过渡。其次它的变量类型是采用弱类型，并未使用严格的数据类型。&nbsp;<br />
<br />
<strong>安全性</strong><br />
JavaScript是一种安全性语言，它不允许访问本地的硬盘，并不能将数据存入到服务器上，不允许对网络文档进行修改和删除，只能通过浏览器实现信息浏览或动态交互。从而有效地防止数据的丢失。&nbsp;<br />
<br />
<strong>动态性</strong><br />
JavaScript是动态的，它可以直接对用户或客户输入做出响应，无须经过Web服务程序。它对用户的反映响应，是采用以事件驱动的方式进行的。所谓事件驱动，就是指在主页(Home Page)中执行了某种操作所产生的动作，就称为&#8220;事件&#8221;(Event)。比如按下鼠标、移动窗口、选择菜单等都可以视为事件。当事件发生后，可能会引起相应的事件响应。&nbsp;<br />
<br />
<strong>跨平台性</strong><br />
JavaScript是依赖于浏览器本身，与操作环境无关，只要能运行浏览器的计算机，并支持JavaScript的浏览器就可正确执行。从而实现了&#8220;编写一次，走遍天下&#8221;的梦想。&nbsp;<br />
<br />
实际上JavaScript最杰出之处在于可以用很小的程序做大量的事。无须有高性能的电脑，软件仅需一个字处理软件及一浏览器，无须WEB服务器通道，通过自己的电脑即可完成所有的事情。<br />
综合所述JavaScript 是一种新的描述语言，它可以被箝入到 HTML 的文件之中。 JavaScript语言可以做到回应使用者的需求事件 (如： form 的输入) ，而不用任何的网路来回传输资料，所以当一位使用者输入一项资料时，它不用经过传给伺服端 (server)处理，再传回来的过程，而直接可以被客户端 (client) 的应用程式所处理。<br />
JavaScript 和 Java 很类似，但到底并不一样！ Java 是一种比 JavaScript 更复杂许多的程式语言，而 JavaScript 则是相当容易了解的语言。JavaScript 创作者可以不那麽注重程式技巧，所以许多 Java 的特性在 Java Script 中并不支援。&nbsp;<br />
<br />
<strong><font color="#FF0000">二、JavaScript和Java的区别</font></strong><br />
虽然JavaScript与Java有紧密的联系，但却是两个公司开发的不同的两个产品。Java是SUN公司推出的新一代面向对象的程序设计语言，特别适合于Internet应用程序开发；而JavaScript是Netscape公司的产品，其目的是为了扩展Netscape Navigator功能，而开发的一种可以嵌入Web页面中的基于对象和事件驱动的解释性语言，它的前身是Live Script；而Java的前身是Oak语言。下面对两种语言间的异同作如下比较：<br />
<br />
<strong>基于对象和面向对象</strong><br />
Java是一种真正的面向对象的语言，即使是开发简单的程序，必须设计对象。&nbsp;<br />
JavaScript是种脚本语言，它可以用来制作与网络无关的，与用户交互作用的复杂软件。它是一种基于对象（Object Based）和事件驱动（Event Driver）的编程语言。因而它本身提供了非常丰富的内部对象供设计人员使用。&nbsp;<br />
<br />
<strong>解释和编译</strong><br />
两种语言在其浏览器中所执行的方式不一样。Java的源代码在传递到客户端执行之前，必须经过编译，因而客户端上必须具有相应平台上的仿真器或解释器，它可以通过编译器或解释器实现独立于某个特定的平台编译代码的束缚。<br />
JavaScript是一种解释性编程语言，其源代码在发往客户端执行之前不需经过编译，而是将文本格式的字符代码发送给客户编由浏览器解释执行。&nbsp;<br />
<br />
<strong>强变量和弱变量</strong><br />
两种语言所采取的变量是不一样的。<br />
Java采用强类型变量检查，即所有变量在编译之前必须作声明。如:&nbsp;<br />
Integer x;&nbsp;<br />
String y;<br />
x=1234;<br />
x=4321;<br />
其中X=1234说明是一个整数，Y=4321说明是一个字符串。<br />
JavaScript中变量声明，采用其弱类型。即变量在使用前不需作声明，而是解释器在运行时检查其数据类型，如：<br />
x=1234;<br />
y＝"4321";<br />
前者说明x为其数值型变量，而后者说明y为字符型变量。<br />
<br />
<strong>代码格式不一样</strong><br />
Java是一种与HTML无关的格式，必须通过像HTML中引用外媒体那么进行装载，其代码以字节代码的形式保存在独立的文档中。<br />
JavaScript的代码是一种文本字符格式，可以直接嵌入HTML文档中，并且可动态装载。编写HTML文档就像编辑文本文件一样方便。<br />
<br />
<strong>嵌入方式不一样</strong><br />
在HTML文档中，两种编程语言的标识不同，JavaScript使用&lt;Script&gt;...&lt;/Script&gt;来标识，而Java使用&lt;applet&gt;...&lt;/applet&gt;来标识。&nbsp;<br />
<br />
<strong>静态联编和动态联编</strong><br />
Java采用静态联编，即Java的对象引用必须在编译时的进行，以使编译器能够实现强类型检查。<br />
JavaScript采用动态联编，即JavaScript的对象引用在运行时进行检查，如不经编译则就无法实现对象引用的检查。&nbsp;<br />
<br />
<strong><font color="#FF0000">三、JavaScript程序运行环境</font></strong><br />
Java运行环境<br />
软件环境：<br />
Windows 95/98或Windows NT。<br />
Netscape Navigator x.0或Internet Explorer x.0。<br />
用于编辑HTML文档的字符编辑器(WS、WPS、Notepad、WordPad等)或HTML文档编辑器。<br />
硬件配置：<br />
首先必须具备运行Windows 95/98或Windows NT的基本硬件配置环境。推荐：<br />
基本内存32M。<br />
CRT只少需要256颜色，分辨率在640X480以上。<br />
CPU只少233以上。<br />
鼠标和其它外部设置（根据需要选用）。<br />
<br />
<strong><font color="#FF0000">四、编写第一个JavaScript程序</font></strong><br />
下面我们通过一个例子，编写第一个JavaScript程序。通过它可说明JavaScript的脚本是怎样被嵌入到HTML文档中的。<br />
test1.html文档：<br />
<table width="75%" border="0">
    <tbody>
        <tr>
            <td bgcolor="#CCCCCC" style="font-size: 9pt; ">&lt;html&gt;<br />
            &lt;head&gt;<br />
            &lt;Script Language ="JavaScript"&gt;<br />
            // JavaScript Appears here.<br />
            alert("这是第一个JavaScript例子!");<br />
            alert("欢迎你进入JavaScript世界!");&nbsp;<br />
            alert("今后我们将共同学习JavaScript知识！");<br />
            &lt;/Script&gt;&nbsp;<br />
            &lt;/Head&gt;<br />
            &lt;/Html&gt;</td>
        </tr>
    </tbody>
</table>
<br />
在Internet Explore5.0中运行行后的结果见图1－1所示。<br />
<img src="http://www8.ccidnet.com/school/web//2001/04/29/image/jImage25.gif"  alt="" /><br />
图１－１ 程序运行的结果<br />
<br />
<font color="blue">说明： test.html是HTML文档，其标识格式为标准的HTML格式；<br />
如同HTML标识语言一样， JavaScript程序代码是一些可用字处理软件浏览的文本，它在描述页面的HTML相关区域出现。<br />
JavaScript代码由 &lt;Script Language ="JavaScript"&gt;...&lt;/Script&gt;说明。在标识&lt;Script Language ="JavaScript"&gt;...&lt;/Script&gt;之间就可加入JavaScript脚本。<br />
alert()是JavaScript的窗口对象方法，其功能是弹出一个具有OK对话框并显示（）中的字符串。<br />
通过&lt;!-- ...//--&gt;标识说明：若不认识JavaScript代码的浏览器，则所有在其中的标识均被忽略；若认识，则执行其结果。使用注释这是一个好的编程习惯，它使其他人可以读懂你的语言。<br />
JavaScript 以 &lt;/Script&gt; 标签结束。&nbsp;</font><br />
<br />
从上面的实例分析中我们可以看出，编写一个JavaScript程序确实非常容易的。</span>
<img src ="http://www.blogjava.net/dm520/aggbug/306668.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/dm520/" target="_blank">dm520</a> 2009-12-19 15:40 <a href="http://www.blogjava.net/dm520/articles/306668.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>