<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>web集结号 &#187; javascript</title>
	<atom:link href="http://www.songlecn.com/category/js/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.songlecn.com</link>
	<description>专注于web表现层技术</description>
	<lastBuildDate>Wed, 04 Nov 2009 02:46:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>JavaScript类的点点滴滴</title>
		<link>http://www.songlecn.com/2009/07/1191/</link>
		<comments>http://www.songlecn.com/2009/07/1191/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 02:08:23 +0000</pubDate>
		<dc:creator>船长</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[javascript教程]]></category>
		<category><![CDATA[js教程]]></category>
		<category><![CDATA[类]]></category>

		<guid isPermaLink="false">http://www.songlecn.com/2009/07/1191/</guid>
		<description><![CDATA[类是什么？         许多刚接触编程的朋友都可能理解不了类，其实类是对我们这个现实世界的模拟，把它说成“类别”或者“类型”可能会更容易理解一些。比如“人”这种动物就是一个类，而具体某一个人就是“人”这个类的一个实例，“人”可以有许多实例（地球人超过六十亿了），但“人”这个类只有一个。你或许会说那男人和女人不也是人么？怎么只能有一个？其实这里要谈到一个继承的东西，后边才讲，请继续看下去。 如何建立一个类？         在C++中是以class来声明一个类的，JavaScript与C++不同，它使用了与函数一样的function来声明，这就让许多学Jscript的朋友把类与函数混在一起了，在Jscript中函数与类确实有些混，但使用久了自然而然会理解，这篇文章是针对想进攻面向对象编程的朋友而写，就不打算一下子讨论得太深了。         请看下边这个类的定义：         function WuYouUser()         {                 this.Name; //名字         } 上边的代码定义了一个WuYouUser（无忧用户）类，它有个属性：Name（名字）。Name就是WuYouUser类的一个属性。         一个类有固定的属性，但类的实例却有不同的属性值，就像我是属于“人”这个类的，性别是男，而我有一个女同学，她也属于“人”类，但她的性别属性值却为女。         那么如何声明某个类的一个实例呢？非常简单：                  var Wo = new WuYouUser(); //实例一：“我”         var Biyuan = new WuYouUser(); //实例二：“碧原”（Biyuan哥，不好意思。。。嘿嘿） [...]]]></description>
		<wfw:commentRss>http://www.songlecn.com/2009/07/1191/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>JavaScript中的Navigator浏览器对象</title>
		<link>http://www.songlecn.com/2009/07/1190/</link>
		<comments>http://www.songlecn.com/2009/07/1190/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 01:51:32 +0000</pubDate>
		<dc:creator>船长</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[javascript教程]]></category>
		<category><![CDATA[js教程]]></category>
		<category><![CDATA[Navigator]]></category>

		<guid isPermaLink="false">http://www.songlecn.com/?p=1190</guid>
		<description><![CDATA[navigator 浏览器对象，包含了正在使用的 Navigator 的版本信息。反映了当前使用的浏览器的资料。JavaScript 客户端运行时刻引擎自动创建 navigator 对象。 更详细的信息可以去查msdn或者Navigator 2.0以后的说明文档，这里我们之做个简单的说明 包括一下几大属性： appCodeName 返回浏览器的“码名”(?)，流行的 IE 和 NN 都返回 &#8216;Mozilla&#8217;。 下面的例子显示了 appCodeName 属性的值： document.write(&#8220;navigator.appCodeName 的值是&#8221; + navigator.appCodeName) appName 返回浏览器名。IE 返回 &#8216;Microsoft Internet Explorer&#8217;，NN 返回 &#8216;Netscape&#8217;。 下面的例子显示了 appName 属性的值： document.write(&#8220;navigator.appName 的值是 &#8221; + navigator.appName) appVersion 返回浏览器版本，包括了大版本号、小版本号、语言、操作平台等信息。 language 语言 mimeType 以数组表示所支持的MIME类型 platform 返回浏览器的操作平台，对于 Windows 9x 上的浏览器，返回 &#8216;Win32&#8242;（大小写可能有差异）。 userAgent 返回以上全部信息。例如，IE5.01 返回 [...]]]></description>
		<wfw:commentRss>http://www.songlecn.com/2009/07/1190/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript中的Screen屏幕对象</title>
		<link>http://www.songlecn.com/2009/07/1185/</link>
		<comments>http://www.songlecn.com/2009/07/1185/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 02:22:51 +0000</pubDate>
		<dc:creator>船长</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[javascript教程]]></category>
		<category><![CDATA[js教程]]></category>
		<category><![CDATA[Screen]]></category>

		<guid isPermaLink="false">http://www.songlecn.com/?p=1185</guid>
		<description><![CDATA[这是基本JavaScript的屏幕对象 screen 屏幕对象 反映了当前用户的屏幕设置。 width 返回屏幕的宽度（像素数）。 height 返回屏幕的高度。 availWidth 返回屏幕的可用宽度（除去了一些不自动隐藏的类似任务栏的东西所占用的宽度）。 availHeight 返回屏幕的可用高度。 colorDepth 返回当前颜色设置所用的位数 &#8211; 1：黑白；8：256色；16：增强色；24/32：真彩色 下面是英文的Navigator浏览器的屏幕对象： availHeight:minus permanent or semipermanent user interface features displayed by the operating system:such as the Taskbar on Windows.   availWidth:Specifies the width of the screen, in pixels, minus permanent or semipermanent user interface:features displayed by the operating system, such as [...]]]></description>
		<wfw:commentRss>http://www.songlecn.com/2009/07/1185/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>JavaScript中的Window窗口对象</title>
		<link>http://www.songlecn.com/2009/07/1184/</link>
		<comments>http://www.songlecn.com/2009/07/1184/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 02:21:43 +0000</pubDate>
		<dc:creator>船长</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[javascript教程]]></category>
		<category><![CDATA[js教程]]></category>
		<category><![CDATA[Window]]></category>

		<guid isPermaLink="false">http://www.songlecn.com/?p=1184</guid>
		<description><![CDATA[JavaScript中的Window窗口对象 他是JavaScript中最大的对象，它描述的是一个浏览器窗口。一般要引用它的属性和方法时，不需要用“window.xxx”这种形式，而直接使用“xxx”。一个框架页面也是一个窗口。 Window窗口对象有如下属性： name 窗口的名称，由打开它的连接（&#60;a target=&#8221;&#8230;&#8221;&#62;）或框架页（&#60;frame name=&#8221;&#8230;&#8221;&#62;）或某一个窗口调用的 open() 方法（见下）决定。一般我们不会用这个属性。 status 指窗口下方的“状态栏”所显示的内容。通过对 status 赋值，可以改变状态栏的显示。 opener 用法：window.opener；返回打开本窗口的窗口对象。注意：返回的是一个窗口对象。如果窗口不是由其他窗口打开的，在 Netscape 中这个属性返回 null；在 IE 中返回“未定义”（undefined）。undefined 在一定程度上等于 null。注意：undefined 不是 JavaScript 常数，如果你企图使用“undefined”，那就真的返回“未定义”了。 self 指窗口本身，它返回的对象跟 window 对象是一模一样的。最常用的是“self.close()”，放在&#60;a&#62;标记中：“&#60;a href=&#8221;javascript:self.close()&#8221;&#62;关闭窗口&#60;/a&#62;”。 parent 返回窗口所属的框架页对象。 top 返回占据整个浏览器窗口的最顶端的框架页对象。 history 历史对象，见下。 location 地址对象，见下。 document 文档对象，见下。 Window窗口对象有如下方法： 第一个方法是open() 打开一个窗口。 用法： open(&#60;URL字符串&#62;, &#60;窗口名称字符串&#62;, &#60;参数字符串&#62;); 说明： &#60;URL字符串&#62;：描述所打开的窗口打开哪一个网页。如果留空（&#8221;），则不打开任意网页。 &#60;窗口名称字符串&#62;：描述被打开的窗口的名称（window.name），可以使用&#8217;_top&#8217;、&#8217;_blank&#8217;等内建名称。这里的名称跟“&#60;a href=&#8221;&#8230;&#8221; target=&#8221;&#8230;&#8221;&#62;”里的“target”属性是一样的。 &#60;参数字符串&#62;：描述被打开的窗口的样貌。如果只需要打开一个普通窗口，该字符串留空（&#8221;），如果要指定样貌，就在字符串里写上一到多个参数，参数之间用逗号隔开。 例：打开一个 400 [...]]]></description>
		<wfw:commentRss>http://www.songlecn.com/2009/07/1184/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript中的History历史对象</title>
		<link>http://www.songlecn.com/2009/07/1183/</link>
		<comments>http://www.songlecn.com/2009/07/1183/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 02:19:54 +0000</pubDate>
		<dc:creator>船长</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[History]]></category>
		<category><![CDATA[javascript教程]]></category>
		<category><![CDATA[js教程]]></category>

		<guid isPermaLink="false">http://www.songlecn.com/?p=1183</guid>
		<description><![CDATA[JavaScript中的History历史对象包含了用户已浏览的 URL 的信息，是指历史对象指浏览器的浏览历史。鉴于安全性的需要，该对象收到很多限制，现在只剩下下列属性和方法。History历史对象有length这个属性，列出历史的项数。JavaScript 所能管到的历史被限制在用浏览器的“前进”“后退”键可以去到的范围。本属性返回的是“前进”和“后退”两个按键之下包含的地址数的和。 History历史对象并有以下方法 back() 后退，跟按下“后退”键是等效的。 forward() 前进，跟按下“前进”键是等效的。 go() 用法：history.go(x)；在历史的范围内去到指定的一个地址。如果 x &#60; 0，则后退 x 个地址，如果 x &#62; 0，则前进 x 个地址，如果 x == 0，则刷新现在打开的网页。history.go(0) 跟 location.reload() 是等效的。]]></description>
		<wfw:commentRss>http://www.songlecn.com/2009/07/1183/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript中的Location地址对象</title>
		<link>http://www.songlecn.com/2009/07/1182/</link>
		<comments>http://www.songlecn.com/2009/07/1182/#comments</comments>
		<pubDate>Thu, 16 Jul 2009 02:18:44 +0000</pubDate>
		<dc:creator>船长</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[javascript教程]]></category>
		<category><![CDATA[js教程]]></category>
		<category><![CDATA[Location]]></category>

		<guid isPermaLink="false">http://www.songlecn.com/?p=1182</guid>
		<description><![CDATA[location 地址对象 它描述的是某一个窗口对象所打开的地址。要表示当前窗口的地址，只需要使用“location”就行了；若要表示某一个窗口的地址，就使用“&#60;窗口对象&#62;.location”。先前写了一片用window.location.href实现刷新另个框架页面 ，特此我看了一下locaiton的详细用法，对此有点改进，具体如下：   注意：属于不同协议或不同主机的两个地址之间不能互相引用对方的 location 对象，这是出于安全性的需要。例如，当前窗口打开的是“www.a.com”下面的某一页，另外一个窗口（对象名为：bWindow）打开的是“www.b.com”的网页。如果在当前窗口使用“bWindow.location”，就会出错：“没有权限”。这个错误是不能用错误处理程序（Event Handler，参阅 onerror 事件)来接收处理的。 第一、简单介绍一下location属性、用法以及相关示例：   Location   包含了关于当前 URL 的信息。location对象描述了与一个给定的 Window 对象关联的完整 URL。location 对象的每个属性都描述了 URL 的不同特性。 通常情况下，一个 URL 会有下面的格式：协议//主机:端口/路径名称#哈希标识?搜索条件 例如：http://www.ijavascript.cn/jiaocheng/index.html#topic1?x=7&#38;y=2 这些部分是满足下列需求的： “协议”是 URL 的起始部分，直到包含到第一个冒号。    “主机”描述了主机和域名，或者一个网络主机的 IP 地址。   “端口”描述了服务器用于通讯的通讯端口。    路径名称描述了 URL 的路径方面的信息。   “哈希标识”描述了 URL 中的锚名称，包括哈希掩码(#)。此属性只应用于 HTTP 的 URL。    “搜索条件”描述了该 URL 中的任何查询信息，包括问号。此属性只应用于 HTTP 的 URL。“搜索条件”字符串包含变量和值的配对；每对之间由一个“&#38;”连接。     属性概览   protocol [...]]]></description>
		<wfw:commentRss>http://www.songlecn.com/2009/07/1182/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript中的Document文档对象</title>
		<link>http://www.songlecn.com/2009/07/1176/</link>
		<comments>http://www.songlecn.com/2009/07/1176/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 02:40:32 +0000</pubDate>
		<dc:creator>船长</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[Document]]></category>
		<category><![CDATA[javascript教程]]></category>
		<category><![CDATA[js教程]]></category>
		<category><![CDATA[文档对象]]></category>

		<guid isPermaLink="false">http://www.songlecn.com/?p=1176</guid>
		<description><![CDATA[Document文档对象是JavaScript中window和frames对象的一个属性,是显示于窗口或框架内的一个文档。描述当前窗口或指定窗口对象的文档。它包含了文档从&#60;head&#62;到&#60;/body&#62;的内容。 用法：document （当前窗口） 或 &#60;窗口对象&#62;.document （指定窗口） 属性： document.title //设置文档标题等价于HTML的&#60;title&#62;标签 document.bgColor //设置页面背景色 document.fgColor //设置前景色(文本颜色) document.linkColor //未点击过的链接颜色 document.alinkColor //激活链接(焦点在此链接上)的颜色 document.vlinkColor //已点击过的链接颜色 document.URL //设置URL属性从而在同一窗口打开另一网页 document.fileCreatedDate //文件建立日期，只读属性 document.fileModifiedDate //文件修改日期，只读属性 document.fileSize //文件大小，只读属性 document.cookie //设置和读出cookie document.charset //设置字符集 简体中文:gb2312 cookie 关于 cookie 请参看“使用框架和 Cookies”一章。 lastModified 当前文档的最后修改日期，是一个 Date 对象。 referrer 如果当前文档是通过点击连接打开的，则 referrer 返回原来的 URL。 title 指&#60;head&#62;标记里用&#60;title&#62;&#8230;&#60;/title&#62;定义的文字。在 Netscape 里本属性不接受赋值。 fgColor 指&#60;body&#62;标记的 text 属性所表示的文本颜色。 bgColor [...]]]></description>
		<wfw:commentRss>http://www.songlecn.com/2009/07/1176/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript中的其他对象</title>
		<link>http://www.songlecn.com/2009/07/1175/</link>
		<comments>http://www.songlecn.com/2009/07/1175/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 02:39:07 +0000</pubDate>
		<dc:creator>船长</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[javascript教程]]></category>
		<category><![CDATA[js教程]]></category>
		<category><![CDATA[对象]]></category>

		<guid isPermaLink="false">http://www.songlecn.com/?p=1175</guid>
		<description><![CDATA[anchors[]; links[]; Link 连接对象 用法：document.anchors[[x]]; document.links[[x]]; &#60;anchorId&#62;; &#60;linkId&#62; 　　document.anchors 是一个数组，包含了文档中所有锚标记（包含 name 属性的&#60;a&#62;标记），按照在文档中的次序，从 0 开始给每个锚标记定义了一个下标。 　　document.links 也是一个数组，包含了文档中所有连接标记（包含 href 属性的&#60;a&#62;标记和&#60;map&#62;标记段里的&#60;area&#62;标记），按照在文档中的次序，从 0 开始给每个连接标记定义了一个下标。 　　如果一个&#60;a&#62;标记既有 name 属性，又有 href 属性，则它既是一个 Anchor 对象，又是一个 Link 对象。 　　在 IE 中，如果在&#60;a&#62;标记中添加“id=&#8221;&#8230;&#8221;”属性，则这个&#60;a&#62;对象被赋予一个标识（ID），调用这个对象的时候只需要使用“&#60;id&#62;”就行了。很多文档部件都可以用这个方法来赋予 ID，但要注意不能有两个 ID 相同。 anchors 和 links 作为数组，有数组的属性和方法。单个 Anchor 对象没有属性；单个 Link 对象的属性见下。 属性 protocol; hostname; port; host; pathname; hash; search; href 与 location 对象相同。 [...]]]></description>
		<wfw:commentRss>http://www.songlecn.com/2009/07/1175/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>JavaScript中的事件处理</title>
		<link>http://www.songlecn.com/2009/07/1174/</link>
		<comments>http://www.songlecn.com/2009/07/1174/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 02:37:07 +0000</pubDate>
		<dc:creator>船长</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[javascript教程]]></category>
		<category><![CDATA[js教程]]></category>
		<category><![CDATA[事件处理]]></category>

		<guid isPermaLink="false">http://www.songlecn.com/?p=1174</guid>
		<description><![CDATA[事件处理概述 　　 事件处理是对象化编程的一个很重要的环节，没有了事件处理，程序就会变得很死，缺乏灵活性。事件处理的过程可以这样表示：发生事件 &#8211; 启动事件处理程序 &#8211; 事件处理程序作出反应。其中，要使事件处理程序能够启动，必须先告诉对象，如果发生了什么事情，要启动什么处理程序，否则这个流程就不能进行下去。事件的处理程序可以是任意 JavaScript 语句，但是我们一般用特定的自定义函数（function）来处理事情。 指定事件处理程序有三种方法： 方法一 直接在 HTML 标记中指定。这种方法是用得最普遍的。方法是： &#60;标记 &#8230; &#8230; 事件=&#8221;事件处理程序&#8221; [事件="事件处理程序" ...]&#62; 让我们来看看例子： &#60;body &#8230; onload=&#8221;alert(&#8216;网页读取完成，请慢慢欣赏！&#8217;)&#8221; onunload=&#8221;alert(&#8216;再见！&#8217;)&#8221;&#62; 这样的定义&#60;body&#62;标记，能使文档读取完毕的时候弹出一个对话框，写着“网页读取完成，请慢慢欣赏”；在用户退出文档（或者关闭窗口，或者到另一个页面去）的时候弹出“再见”。 方法二 编写特定对象特定事件的 JavaScript。这种方法用得比较少，但是在某些场合还是很好用的。方法是： &#60;script language=&#8221;JavaScript&#8221; for=&#8221;对象&#8221; event=&#8221;事件&#8221;&#62; &#8230; (事件处理程序代码) &#8230; &#60;/script&#62; &#60;script language=&#8221;JavaScript&#8221; for=&#8221;window&#8221; event=&#8221;onload&#8221;&#62;   alert(&#8216;网页读取完成，请慢慢欣赏！&#8217;); &#60;/script&#62; 方法三 在 JavaScript 中说明。方法： &#60;事件主角 &#8211; 对象&#62;.&#60;事件&#62; = &#60;事件处理程序&#62;; 用这种方法要注意的是，“事件处理程序”是真正的代码，而不是字符串形式的代码。如果事件处理程序是一个自定义函数，如无使用参数的需要，就不要加“()”。 function ignoreError() [...]]]></description>
		<wfw:commentRss>http://www.songlecn.com/2009/07/1174/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript中的对象化编程</title>
		<link>http://www.songlecn.com/2009/07/1173/</link>
		<comments>http://www.songlecn.com/2009/07/1173/#comments</comments>
		<pubDate>Mon, 13 Jul 2009 02:34:54 +0000</pubDate>
		<dc:creator>船长</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[javascript教程]]></category>
		<category><![CDATA[js教程]]></category>
		<category><![CDATA[对象化编程]]></category>

		<guid isPermaLink="false">http://www.songlecn.com/?p=1173</guid>
		<description><![CDATA[关于对象化编程的语句 现在我们有实力学习以下关于对象化编程，但其实属于上一章的内容了。 with 语句 为一个或一组语句指定默认对象。 用法： with (&#60;对象&#62;) &#60;语句&#62;; with 语句通常用来缩短特定情形下必须写的代码量。在下面的例子中，请注意 Math 的重复使用： x = Math.cos(3 * Math.PI) + Math.sin(Math.LN10); y = Math.tan(14 * Math.E); 当使用 with 语句时，代码变得更短且更易读： with (Math) {   x = cos(3 * PI) + sin(LN10);   y = tan(14 * E); } this 对象 返回“当前”对象。在不同的地方，this 代表不同的对象。如果在 JavaScript 的“主程序”中（不在任何 function 中，不在任何事件处理程序中）使用 this，它就代表 window 对象；如果在 [...]]]></description>
		<wfw:commentRss>http://www.songlecn.com/2009/07/1173/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>javascript的trim()函数的实现</title>
		<link>http://www.songlecn.com/2009/06/1167/</link>
		<comments>http://www.songlecn.com/2009/06/1167/#comments</comments>
		<pubDate>Fri, 26 Jun 2009 02:00:18 +0000</pubDate>
		<dc:creator>船长</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[javascript教程]]></category>
		<category><![CDATA[js教程]]></category>
		<category><![CDATA[trim]]></category>

		<guid isPermaLink="false">http://www.songlecn.com/?p=1167</guid>
		<description><![CDATA[在JavaScript中我们需要用到trim的地方很多，但是JavaScript又没有独立的trim函数或者方法可以使用，所以我们需要自己写个trim函数来实现我们的目的 比如方法一： String.prototype.trim= function(){       // 用正则表达式将前后空格       // 用空字符串替代。       return this.replace(/(^\s*)&#124;(\s*$)/g, "");   } 方法二： function  trim(str){     for(var  i  =  0  ;  i&#60;str.length  &#38;&#38;  str.charAt(i)=="  "  ;  i++  )  ;     for(var  j  =str.length;  j&#62;0  &#38;&#38;  str.charAt(j-1)=="  "  ;  j--)  ;     if(i&#62;j)  return  "";       return  str.substring(i,j);   } Javascript中S.replace(/(^\s*)&#124;(\s*$)/g, &#8220;&#8221;);的 (^\s*)&#124;(\s*$) 是什么意思的？ 首先是把/(^\s*)&#124;(\s*$)/g 替换为&#8221;" 然后,/&#8230;/g 里面的,是表示放置通配符的地方,g代表全局参数，(^\s*)或者(\s*$)都将被替换为&#8221;" 匹配首尾空白字符的正则表达式：^\s*&#124;\s*$ 可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等)，非常有用的表达式 javascript内实现trim的方法 直接拷贝的话，空格可能出现问题，请仔细检查 function   trim(str) { for(var   i   =   0   ;   i&#60;str.length   &#38;&#38;  [...]]]></description>
		<wfw:commentRss>http://www.songlecn.com/2009/06/1167/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>javascript的prototype继承</title>
		<link>http://www.songlecn.com/2009/06/1161/</link>
		<comments>http://www.songlecn.com/2009/06/1161/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 01:42:22 +0000</pubDate>
		<dc:creator>船长</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[javascript教程]]></category>
		<category><![CDATA[js教程]]></category>
		<category><![CDATA[prototype]]></category>
		<category><![CDATA[继承]]></category>

		<guid isPermaLink="false">http://www.songlecn.com/?p=1161</guid>
		<description><![CDATA[在prototype继承中 原型类中不能有成员对象！ 所有成员必须是值类型数据（string也可以）用prototype继承有执行效率高，不会浪费内存，为父类动态添置方法后子类中马上可见等的优点。我就非常喜欢用prototype继承。prototype继承是通过把子类的原型对象（prototype）设置成父类的一个实例来进行继承的。只简单的这样设置继承的确如楼主所说，有不少缺点。总的来说有四个缺点： 缺点一：父类的构造函数不是像JAVA中那样在给子类进行实例化时执行的，而是在设置继承的时候执行的，并且只执行一次。这往往不是我们希望的，特别是父类的构造函数中有一些特殊操作的情况下。 缺点二：由于父类的构造函数不是在子类进行实例化时执行，在父类的构造函数中设置的成员变量到了子类中就成了所有实例对象公有的公共变量。由于JavaScript中继承只发生在“获取”属性的值时，对于属性的值是String，Number和Boolean这些数据本身不能被修改的类型时没有什么影响。但是Array和Object类型就会有问题。 缺点三：如果父类的构造函数需要参数，我们就没有办法了。 缺点四：子类原本的原型对象被替换了，子类本身的constructor属性就没有了。在类的实例取它的constructor属性时，取得的是从父类中继承的constructor属性，从而constructor的值是父类而不是子类。 我也曾经为了这四个缺点头疼过，于是对prototype继承进行改造。 我试了几种方法，下面是我觉得最好的一种。我把它写成Function对象的一个方法，这样用的时候方便。方法如下： //类的继承-海浪版 Function.prototype.Extends = function (parentClass) {   var Bs = new Function();   Bs.prototype = parentClass.prototype;   this.prototype = new Bs();   this.prototype.Super = parentClass;   this.prototype.constructor = this; } 下面的内容是一些基本说明 基本的用法 把ClassA的一个实例赋值给ClassB ClassB就继承了ClassA的所有属性 &#60;script&#62; function ClassA() {     this.a='a'; } function ClassB() {     this.b='b'; } ClassB.prototype=new ClassA(); [...]]]></description>
		<wfw:commentRss>http://www.songlecn.com/2009/06/1161/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>DOM中的getElementsByClassName</title>
		<link>http://www.songlecn.com/2009/06/1156/</link>
		<comments>http://www.songlecn.com/2009/06/1156/#comments</comments>
		<pubDate>Wed, 24 Jun 2009 01:50:23 +0000</pubDate>
		<dc:creator>船长</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[etElementsByClassName]]></category>
		<category><![CDATA[javascript教程]]></category>
		<category><![CDATA[js教程]]></category>

		<guid isPermaLink="false">http://www.songlecn.com/?p=1156</guid>
		<description><![CDATA[今天在脚本中应用到了根据类名取元素的方法，却对其效率不甚满意。于是，小幅修改了其探测元素类名的方法，提升了约3成的效率.DOM中的getElementsByClassName解释如下：DOM API 中提供3种方法取元素(getElementById,getElementsByName,getElementsByTagName)，经常编写CSS的人自然就会产生疑问，有没有根据样式类名取元素的方法，可惜，DOM1/2 里面都没有这样的方法，prototype 很早就扩展过DOM的方法，添加了 getElementsByClassName，从方法名上看，似乎非常正统，与前面3种方法名称也像，分析其代码，却发现还是通过 getElementsByTagName 来实现。这个方法称不上优雅，因为需要遍历所有的元素，探测元素是否包含目标样式类名，返回符合条件的元素数组。google了一下，却没有找到更优雅高效的替代方法。 function getElementsByClassName(className, parentElement){ var elems = ($(parentElement)&#124;&#124;document.body).getElementsByTagName("*"); var result=[]; for (i=0; j=elems[i]; i++){   if ((" "+j.className+" ").indexOf(" "+className+" ")!=-1){    result.push(j);   } } return result; } 既然有getElementsByClassName，一样可以有 getElementsByAttribute(如：getElementsByValue、getElementsByStyle、getElementsByType) document.getElementsByClassName = function(className,oBox) { //适用于获取某个HTML区块内部含有某一特定className的所有HTML元素 this.d= oBox &#124;&#124; document; var children = this.d.getElementsByTagName('*') &#124;&#124; document.all; var elements = new [...]]]></description>
		<wfw:commentRss>http://www.songlecn.com/2009/06/1156/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Javascript加入收藏夹代码</title>
		<link>http://www.songlecn.com/2009/06/1151/</link>
		<comments>http://www.songlecn.com/2009/06/1151/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 02:12:52 +0000</pubDate>
		<dc:creator>船长</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[javascript代码]]></category>
		<category><![CDATA[加入收藏夹]]></category>

		<guid isPermaLink="false">http://www.songlecn.com/?p=1151</guid>
		<description><![CDATA[Javascript加入收藏夹代码， 这个js代码支持firefox浏览器很是难得， 支持Firefox的加入收藏夹JS代码。 具体信息你可以这么写： 点击即可把你的网站添加到浏览器的收藏菜单下 加入收藏夹 将xxx网站加入收藏夹 收藏本网站 留下网站 怎么写才能让别人加入收藏夹，就要看你的本事了 &#60;script&#62; function addfavorite() { if (document.all) { window.external.addFavorite('http://www.ijavascript.cn',ijavascript.cn');); } else if (window.sidebar) { window.sidebar.addPanel('Dnew.cn', 'http://www.ijavascript.cn', ""); } } &#60;/script&#62; &#60;a href="#" onclick="addfavorite()"&#62;把ijavascript.cn加入收藏&#60;/a&#62; 下面这个也是Javascript加入收藏夹代码,同样支持firefox &#60;script type="text/javascript"&#62; function addBookmark(title,url) { if (window.sidebar) { window.sidebar.addPanel(title, url,""); } else if( document.all ) { window.external.AddFavorite( url, title); } else if( [...]]]></description>
		<wfw:commentRss>http://www.songlecn.com/2009/06/1151/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript的indexOf忽略大小写</title>
		<link>http://www.songlecn.com/2009/06/1146/</link>
		<comments>http://www.songlecn.com/2009/06/1146/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 02:13:22 +0000</pubDate>
		<dc:creator>船长</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[indexOf]]></category>
		<category><![CDATA[javascript教程]]></category>
		<category><![CDATA[js教程]]></category>
		<category><![CDATA[大小写]]></category>

		<guid isPermaLink="false">http://www.songlecn.com/?p=1146</guid>
		<description><![CDATA[javascript中indexOf函数是严格区分大小写的，也就是当我们使用JavaScript的indexOf函数的时候， 是无法进行大小写同时进行的。为我们的一些字符串操作造成了困难。 下面像大家介绍如何让javascript中indexOf函数忽略大小写呢。 把他们全都换成大写或小写，再比较就可以了。 这是比较简单的一种做法！ indexOf对象内第一次出现子字符串的字符位置， 用toLowerCase或toUpperCase如下代码： var testStr = 'ABCDEF'; var subStr = 'bcd'; alert(testStr.toLowerCase().indexOf(subStr.toLowerCase())); testStr = 'AbCdEf'; alert(testStr.toLowerCase().indexOf(subStr.toLowerCase())); 或者看看下面这个是如何对indexof函数进行扩展的: String.prototype.indexOf = function(f,m){ var mm = (m == false) ? "i":""; var re = eval("/"+ f +"/"+mm); var rt = this.match(re); return (rt == null) ? -1:rt.index; } var test = "absnegKIugfkalg"; alert(test.indexOf("kiu",false)); 下面这个兼容原来的 [...]]]></description>
		<wfw:commentRss>http://www.songlecn.com/2009/06/1146/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript中的execCommand</title>
		<link>http://www.songlecn.com/2009/06/1139/</link>
		<comments>http://www.songlecn.com/2009/06/1139/#comments</comments>
		<pubDate>Fri, 19 Jun 2009 02:53:04 +0000</pubDate>
		<dc:creator>船长</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[execCommand]]></category>
		<category><![CDATA[javascript教程]]></category>
		<category><![CDATA[js教程]]></category>

		<guid isPermaLink="false">http://www.songlecn.com/?p=1139</guid>
		<description><![CDATA[execCommand方法是执行一个对当前文档，当前选择或者给出范围的命令。处理Html数据时常用 如下格式：document.execCommand(sCommand[,交互方式, 动态参数]) ，其中：sCommand为指令参数（如下例中的&#8221;2D-Position&#8221;），交互方式参数如果是true的话将显示对话框，如果为false的话，则不显示对话框（下例中的&#8221;false&#8221;即表示不显示对话框），动态参数一般为一可用值或属性值（如下例中的&#8221;true&#8221;）。 document.execCommand(&#8220;2D-Position&#8221;,&#8221;false&#8221;,&#8221;true&#8221;); 下面列出的是指令参数及意义 2D-Position 允许通过拖曳移动绝对定位的对象。 AbsolutePosition 设定元素的 position 属性为“absolute”(绝对)。 BackColor 设置或获取当前选中区的背景颜色。 BlockDirLTR 目前尚未支持。 BlockDirRTL 目前尚未支持。 Bold 切换当前选中区的粗体显示与否。 BrowseMode 目前尚未支持。 Copy 将当前选中区复制到剪贴板。 CreateBookmark 创建一个书签锚或获取当前选中区或插入点的书签锚的名称。 CreateLink 在当前选中区上插入超级链接，或显示一个对话框允许用户指定要为当前选中区插入的超级链接的 URL。 Cut 将当前选中区复制到剪贴板并删除之。 Delete 删除当前选中区。 DirLTR 目前尚未支持。 DirRTL 目前尚未支持。 EditMode 目前尚未支持。 FontName 设置或获取当前选中区的字体。 FontSize 设置或获取当前选中区的字体大小。 ForeColor 设置或获取当前选中区的前景(文本)颜色。 FormatBlock 设置当前块格式化标签。 Indent 增加选中文本的缩进。 InlineDirLTR 目前尚未支持。 InlineDirRTL 目前尚未支持。 InsertButton 用按钮控件覆盖当前选中区。 [...]]]></description>
		<wfw:commentRss>http://www.songlecn.com/2009/06/1139/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>破解JS脚本加密</title>
		<link>http://www.songlecn.com/2009/06/1132/</link>
		<comments>http://www.songlecn.com/2009/06/1132/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 02:14:36 +0000</pubDate>
		<dc:creator>船长</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[js代码]]></category>
		<category><![CDATA[JS脚本加密]]></category>

		<guid isPermaLink="false">http://www.songlecn.com/?p=1132</guid>
		<description><![CDATA[有时候一些html内容被加密了，我们看不到这些内容：） 下面选取了2种破解JS脚本加密的方式，大家看看 对于HTML加密或限制来说参考下面的方法 zzzevazzz 写的破大部分加密，显源码的东东，在地址栏输入： javascript:s=document.documentElement.outerHTML;document.write('&#60;body&#62;&#60;/body&#62;');document.body.innerText=s; 对于JS加密来说参考下面的方法 最近很多人在问加密代码的问题。其实这些加密都大同小异,就是对字符串和 Unicode 编码进行转换处理。 最后把转换好的字符串用document.write()，eval()，execScript()或VBS的EXECUTE来输出或执行。 想破解加密非常简单，一般不用知道人家代码是怎么加密的，只要在网页中加入一个&#60;textarea id=&#8221;textareaID&#8221; rows=&#8221;20&#8243; cols=&#8221;50&#8243;&#62;&#60;/textarea&#62;，然后在加密代码中找document.write()，eval()，execScript()或VBS的EXECUTE语句，并用document.getElementById(&#8220;textareaID&#8221;).innerText=STR 替换。加密就不攻自破了。 （STR是转换好的字符串变量，如在加密代码中找到 document.write(s); 就用 document.getElementById(&#8220;textareaID&#8221;).innerText=s; 替换）]]></description>
		<wfw:commentRss>http://www.songlecn.com/2009/06/1132/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript中event的x,clientX,offsetX的区别</title>
		<link>http://www.songlecn.com/2009/06/1125/</link>
		<comments>http://www.songlecn.com/2009/06/1125/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 02:26:27 +0000</pubDate>
		<dc:creator>船长</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[clientX]]></category>
		<category><![CDATA[javascript教程]]></category>
		<category><![CDATA[js教程]]></category>
		<category><![CDATA[offsetX]]></category>
		<category><![CDATA[screenX]]></category>

		<guid isPermaLink="false">http://www.songlecn.com/?p=1125</guid>
		<description><![CDATA[JavaScript中event的x,clientX,offsetX的区别 请看下面的文字说明，也就是event中x,clientX,offsetX,screenX的区别： x:设置或者是得到鼠标相对于目标事件的父元素的外边界在x坐标上的位置。 clientX:相对于客户区域的x坐标位置，不包括滚动条，就是正文区域。 offsetx：设置或者是得到鼠标相对于目标事件的父元素的内边界在x坐标上的位置。 screenX:相对于用户屏幕。 同时你可以对比下面代码分析 Click here to show. function show(){ alert("window.event.x:"+window.event.x+"\nwindow.event.y:"+window.event.y+ "\nevent.clientX:"+event.clientX+"\nevent.clientY:"+event.clientY+"\nevent.offsetX:"+ event.offsetX+"\nevent.offsetY:"+event.offsetY+"\nwindow.event.screenX:"+ window.event.screenX+"\nwindow.event.screenY:"+window.event.screenY); }]]></description>
		<wfw:commentRss>http://www.songlecn.com/2009/06/1125/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>静态页面值传递之Cookie篇</title>
		<link>http://www.songlecn.com/2009/06/1117/</link>
		<comments>http://www.songlecn.com/2009/06/1117/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 01:54:15 +0000</pubDate>
		<dc:creator>船长</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[Cookie]]></category>
		<category><![CDATA[javascript教程]]></category>
		<category><![CDATA[js教程]]></category>
		<category><![CDATA[页面值传]]></category>

		<guid isPermaLink="false">http://www.songlecn.com/?p=1117</guid>
		<description><![CDATA[利用Cookie. Cookie是浏览器存储少量命名数据. 它与某个特定的网页或网站关联在一起. Cookie用来给浏览器提供内存, 以便脚本和服务器程序可以在一个页面中使用另一个页面的输入数据. Post.htm &#60;input type=&#8221;text&#8221; name=&#8221;txt1&#8243;&#62; &#60;input type=&#8221;button&#8221; value=&#8221;Post&#8221;&#62; &#60;script language=&#8221;javascript&#8221; &#62; function setCookie(name,value) { /* *&#8212;&#8212;&#8212;&#8212;&#8212; setCookie(name,value) &#8212;&#8212;&#8212;&#8212;&#8212;&#8211; * setCookie(name,value) * 功能:设置得变量name的值 * 参数:name,字符串;value,字符串. * 实例:setCookie(&#8216;username&#8217;,'baobao&#8217;) *&#8212;&#8212;&#8212;&#8212;&#8212; setCookie(name,value) &#8212;&#8212;&#8212;&#8212;&#8212;&#8211; */      var Days = 30; //此 cookie 将被保存 30 天      var exp   = new Date();      exp.setTime(exp.getTime() + Days*24*60*60*1000);   [...]]]></description>
		<wfw:commentRss>http://www.songlecn.com/2009/06/1117/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Javascript设置和查看Cookies</title>
		<link>http://www.songlecn.com/2009/06/1108/</link>
		<comments>http://www.songlecn.com/2009/06/1108/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 02:47:25 +0000</pubDate>
		<dc:creator>船长</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[Cookies]]></category>
		<category><![CDATA[javascript教程]]></category>
		<category><![CDATA[js教程]]></category>

		<guid isPermaLink="false">http://www.songlecn.com/?p=1108</guid>
		<description><![CDATA[Cookie是一小段由浏览器储存起来帮助识别用户身份的信息。在一个表单中设置和检查Cookies的实现需要两个文件来完成。第一个文件为cookie1.html，这个文件需要有一些机理（下面例子的一个按钮）来检查是否有一个Cookie存在，然后再重定向至表单网页或者文档下载网页。而第二个文件，即表单网页（cookie2.html），也是和重要的因为你将要在上面使用一点点JavaScript来设置Cookie，这个设置是在提交表单之前做的。下面给出这文件： 第一个文件（cookie1.html） &#60;HTML&#62; &#60;HEAD&#62; &#60;SCRIPT LANGUAGE=&#8221;JavaScript&#8221;&#62; function cookieRedirect(hasCookieURL, noCookieURL){ var currentCookie = document.cookie; if (currentCookie.indexOf(&#8220;formcomplete=yes&#8221;) != -1) { window.location = hasCookieURL; } else {window.location = noCookieURL;} } &#60;/SCRIPT&#62; &#60;/HEAD&#62; &#60;BODY&#62; &#60;FORM NAME=&#8221;docdownload&#8221;&#62; &#60;INPUT TYPE=&#8221;BUTTON&#8221; VALUE=&#8221;Download document&#8221; onClick=&#8221;cookieRedirect(&#8216;doc.html&#8217;, &#8216;cookie2.html&#8217;)&#8221;&#62; &#60;/FORM&#62; &#60;/BODY&#62; &#60;/HTML&#62; 第二个文件（cookie2.html ） &#60;HTML&#62; &#60;HEAD&#62; &#60;SCRIPT LANGUAGE=&#8221;JavaScript&#8221;&#62; function sendForm(objForm){ cookieExpires = &#8220;Saturday, 01-Jan-03 00:00:00 GMT&#8221;; [...]]]></description>
		<wfw:commentRss>http://www.songlecn.com/2009/06/1108/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript基本数据结构</title>
		<link>http://www.songlecn.com/2009/06/1101/</link>
		<comments>http://www.songlecn.com/2009/06/1101/#comments</comments>
		<pubDate>Sat, 13 Jun 2009 02:01:03 +0000</pubDate>
		<dc:creator>船长</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[javascript教程]]></category>
		<category><![CDATA[js教程]]></category>
		<category><![CDATA[数据结构]]></category>

		<guid isPermaLink="false">http://www.songlecn.com/?p=1101</guid>
		<description><![CDATA[JavaScript提供脚本语言的编程与C++非常相似，它只是去掉了Ｃ语言中有关指针等容易产生的错误，并提供了功能强大的类库。对于已经具备Ｃ++或Ｃ语言的人来说，学习JavaScript脚本语言是一件非常轻松愉快的事。 一、JavaScript代码的加入 　　JavaScript的脚本包括在HTML中，它成为HTML文档的一部分。与HTML标识相结合，构成了一个功能强大的Internet网上编程语言。可以直接将JavaScript脚本加入文档： &#60;Script Language =&#8221;JavaScript&#8221;&#62; JavaScript语言代码； JavaScript 语言代码; &#8230;. &#60;/Script&#62; 说明： 　 通过标识&#60;Script&#62;&#8230;&#60;/Script&#62;指明JavaScript脚本源代码将放入其间。 　 通过属性Language =&#8221;JavaScript&#8221;说明标识中是使用的何种语言，这里是JavaScript语言, 表示在JavaScript中使用的语言。 下面是将JavaScript脚本加入Web文档中的例子: Test2.html &#60;HTML&#62; &#60;Head&#62; &#60;Script Language =&#8221;JavaScript&#8221;&#62; document. Write(&#8220;这是赛迪网互动学校&#8221;); document. close(); &#60;/Script&#62; &#60;/Head&#62; &#60;/HTML&#62; 在浏览器的窗口中调用test2.html，则显示“这是赛迪网互动学校”字串。见图2所示。                                图2 说明: 　　Document. write()是文档对象的输出函数，其功能是将括号中的字符或变量值输出到窗口；document. close()是将输出关闭。 可将&#60;Script&#62;&#8230;&#60;/Script&#62;标识放入head&#62;.. &#60;/Head&#62;或&#60;Body&#62; &#8230;&#60;/Body&#62;之间。将JavaScript标识放置&#60;Head&#62;&#8230; &#60;/Head&#62;在头部之间，使之在主页和其余部分代码之前装载，从而可使代码的功能更强大；可以将JavaScript标识放置在&#60;Body&#62;&#8230; &#60;/Body&#62;主体之间以实现某些部分动态地创建文档。 二、基本数据类型 [...]]]></description>
		<wfw:commentRss>http://www.songlecn.com/2009/06/1101/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript程序构成</title>
		<link>http://www.songlecn.com/2009/06/1092/</link>
		<comments>http://www.songlecn.com/2009/06/1092/#comments</comments>
		<pubDate>Fri, 12 Jun 2009 02:23:28 +0000</pubDate>
		<dc:creator>船长</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[javascript教程]]></category>
		<category><![CDATA[js教程]]></category>
		<category><![CDATA[语句]]></category>

		<guid isPermaLink="false">http://www.songlecn.com/?p=1092</guid>
		<description><![CDATA[JavaScript脚本语言的基本构成是由控制语句、函数、对象、方法、属性等,来实现编程的。 一、程序控制流 　　在任何一种语言中，程序控制流是必须的，它能使得整个程序减小混乱，使之顺利按其一定的方式执行。下面是JavaScript常用的程序控制流结构及语句: １、if条件语句 基本格式 if（表述式） 语句段１； &#8230;&#8230; else 语句段２； &#8230;.. 　功能：若表达式为true，则执行语句段１；否则执行语句段２。 　说明： if -else 语句是JavaScript中最基本的控制语句，通过它可以改变语句的执行顺序。 表达式中必须使用关系语句，来实现判断，它是作为一个布尔值来估算的。 它将零和非零的数分别转化成false和true。 若if后的语句有多行，则必须使用花括号将其括起来。 　 if语句的嵌套 if（布尔值）语句１； else（布尔值）语句２； else if（布尔值）语句３； …… else 语句４； 　 在这种情况下，每一级的布尔表述式都会被计算，若为真，则执行其相应的语句，否则执行else后的语句。 　 ２、For循环语句 　基本格式 for（初始化；条件；增量） 语句集； 　功能：实现条件循环，当条件成立时，执行语句集，否则跳出循环体。 　说明： 初始化参数告诉循环的开始位置，必须赋予变量的初值； 条件：是用于判别循环停止时的条件。若条件满足，则执行循环体，否则 跳出。 增量：主要定义循环控制变量在每次循环时按什么方式变化。 三个主要语句之间，必须使用逗号分隔。 　 ３、while循环 　基本格式 while（条件） 语句集； 该语句与For语句一样，当条件为真时，重复循环，否则退出循环。 　For与while语句 　　两种语句都是循环语句，使用For语句在处理有关数字时更易看懂，也较紧凑；而while循环对复杂的语句效果更特别。 ４、break和continue语句 　　与C++语言相同，使用break语句使得循环从For或while中跳出，continue使得跳过循环内剩余的语句而进入下一次循环。 二、函数 　　函数为程序设计人员提供了一个丰常方便的能力。通常在进行一个复杂的程序设计时，总是根据所要完成的功能，将程序划分为一些相对独立的部分，每部分编写一个函数。从而，使各部分充分独立，任务单一，程序清晰，易懂、易读、易维护。JavaScript函数可以封装那些在程序中可能要多次用到的模块。并可作为事件驱动的结果而调用的程序。从而实现一个函数把它与事件驱动相关联。这是与其它语言不样的地方。 １、JavaScript函数定义 [...]]]></description>
		<wfw:commentRss>http://www.songlecn.com/2009/06/1092/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>基于对象的JavaScript语言</title>
		<link>http://www.songlecn.com/2009/06/1085/</link>
		<comments>http://www.songlecn.com/2009/06/1085/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 02:22:53 +0000</pubDate>
		<dc:creator>船长</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[javascript教程]]></category>
		<category><![CDATA[js教程]]></category>
		<category><![CDATA[对象]]></category>

		<guid isPermaLink="false">http://www.songlecn.com/?p=1085</guid>
		<description><![CDATA[　JavaScript语言是基于对象的（Object-Based），而不是面向对象的（object-oriented）。　本讲介绍了基于对象的JavaScript中常用内部对象属性、方法的使用。虽然JavaScript语言是一门基于对象的，但它还是具有一些面向对象的基本特征。它可以根据需要创建自己的对象，从而进一步扩大JavaScript的应用范围，增强编写功能强大的Web文档。之所以说它是一门基于对象的语言，主要是因为它没有提供象抽象、继承、重载等有关面向对象语言的许多功能。而是把其它语言所创建的复杂对象统一起来，从而形成一个非常强大的对象系统。 一、对象的基础知识 1、对象的基本结构 　　JavaScript中的对象是由属性(properties)和方法(methods)两个基本的元素的构成的。前者是对象在实施其所需要行为的过程中，实现信息的装载单位，从而与变量相关联；后者是指对象能够按照设计者的意图而被执行，从而与特定的函数相联。 2、引用对象的途径 　　一个对象要真正地被使用，可采用以下几种方式获得： 　　o 引用JavaScript内部对象； 　　o 由浏览器环境中提供； 　　o 创建新对象。 　　这就是说一个对象在被引用之前，这个对象必须存在，否则引用将毫无意义，而出现错误信息。从上面中我们可以看出JavaScript引用对象可通过三种方式获取。要么创建新的对象，要么利用现存的对象。 ３、有关对象操作语句 　　JavaScript不是一纯面向对象的语言，它设有提供面向对象语言的许多功能，因此JavaScript设计者之所以把它你“基于对象”而不是面向对象的语言，在JavaScript中提供了几个用于操作对象的语句和关键字及运算符。 （1） For&#8230;in语句 格式如下： For（对象属性名 in 已知对象名） 说明： o 该语句的功能是用于对已知对象的所有属性进行操作的控制循环。它是将一个已知对象的所有属性反复置给一个变量；而不是使用计数器来实现的。 o 该语句的优点就是无需知道对象中属性的个数即可进行操作。 例：下列函数是显示数组中的内容： Function showData(object) for (var X=0; X&#60;30;X++) document.write(object)； 该函数是通过数组下标顺序值，来访问每个对象的属性，使用这种方式首先必须知道数组的下标值，否则若超出范围，则就会发生错误。而使For&#8230;in语句，则根本不需要知道对象属性的个数，见下： Function showData(object) for(var prop in object) document.write(object[prop])； 使用该函数时，在循环体中，For自动将的属性取出来，直到最后为此。 （2） with语句 使用该语句的意思是：在该语句体内，任何对变量的引用被认为是这个对象的属性，以节省一些代码。 with object{ &#8230;} 所有在with语句后的花括号中的语句，都是在后面object对象的作用域的。 （3） this关键字 this是对当前的引用，在JavaScript由于对象的引用是多层次，多方位的，往往一个对象的引用又需要对另一个对象的引用，而另一个对象有可能又要引用另一个对象，这样有可能造成混乱，最后自己已不知道现在引用的那一个对象，为此JavaScript提供了一个用于将对象指定当前对象的语句this。 （4） New运算符 [...]]]></description>
		<wfw:commentRss>http://www.songlecn.com/2009/06/1085/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript中创建新对象</title>
		<link>http://www.songlecn.com/2009/06/1076/</link>
		<comments>http://www.songlecn.com/2009/06/1076/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 02:14:01 +0000</pubDate>
		<dc:creator>船长</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[javascript教程]]></category>
		<category><![CDATA[js教程]]></category>
		<category><![CDATA[创建对象]]></category>

		<guid isPermaLink="false">http://www.songlecn.com/?p=1076</guid>
		<description><![CDATA[使用JavaScript可以创建自己的对象。虽然JavaScript内部和浏览器本身的功能已十分强大，但JavaScript还是提供了创建一个新对象的方法。使其不必像超文本标识语言那样，求于或其它多媒体工具，就能完成许多复杂的工作。　　本讲介绍了用户自行创建对象的方法, 用户可根据需要创建自己的对象。并介绍了JavaScript中建数组的方法。 　　在JavaScript中创建一个新的对象是十分简单的。首先它必须定义一个对象，而后再为该对象创建一个实例。这个实例就是一个新对象，它具有对象定义中的基本特征。 一、对象的定义 JavaScript对象的定义，其基本格式如下： Function Object（属性表） This.prop1=prop1 This.prop2=prop2 &#8230; This.meth=FunctionName1; This.meth=FunctionName2; &#8230; 在一个对象的定义中，可以为该对象指明其属性和方法。通过属性和方法构成了一个对象的实例。如以下是一个关于University对象的定义： Function university(name,city,creatDate URL) This.name=name This.city=city This.creatDate=New Date(creatDate) This.URL=URL 其基本含义如下： Name－指定一个“单位”名称。 　 City－“单位”所在城市。 　 CreatDate－记载university对象的更新日期。 　 URL－该对象指向一个网址。 二、创建对象实例 一旦对象定义完成后，就可以为该对象创建一个实例了： NewObject=New object(); 其中Newobjet是新的对象，Object已经定义好的对象。例： U1=New university(“云南省”，“昆明市”，&#8221;January 05,199712:00:00&#8243;,&#8221;http://www.YN.KM&#8221;) U2=New university(“云南电子科技大学”，“昆明”,&#8221;January 07,1997 12:00:00&#8243;,&#8221;htlp://www.YNKJ.CN&#8221;) 　 三、对象方法的使用 在对象中除了使用属性外，有时还需要使用方法。在对象的定义中，我们看到This.meth=FunctionName语句，那就是为定义对象的方法。实质对象的方法就是一个函数FunctionName，通过它实现自己的意图。 例在university对象中增加一个方法，该方法是显示它自己本身，并返回相应的字串。 function university(name,city,createDate,URL) This.Name=Name; This.city=city; This.createDate=New Date(creatDate)； This.URL=URL； This.showuniversity=showuniversity; 其中This.showuniversity就是定义了一个方法－－－showuniversity()。 [...]]]></description>
		<wfw:commentRss>http://www.songlecn.com/2009/06/1076/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript对象系统</title>
		<link>http://www.songlecn.com/2009/06/1068/</link>
		<comments>http://www.songlecn.com/2009/06/1068/#comments</comments>
		<pubDate>Mon, 08 Jun 2009 02:35:20 +0000</pubDate>
		<dc:creator>船长</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[javascript教程]]></category>
		<category><![CDATA[js教程]]></category>
		<category><![CDATA[对象系统]]></category>

		<guid isPermaLink="false">http://www.songlecn.com/?p=1068</guid>
		<description><![CDATA[使用浏览器的内部对象系统, 可实现与HTML文档进行交互。它的作用是将相关元素组织包装起来，提供给程序设计人员使用，从而减轻编程人的劳动，提高设计Web页面的能力。本讲主要介绍了JavaScript对象系统的使用方法，其中重点介绍了文档对象及使用。 一、浏览器对象层次及其主要作用 　　除了前面提到过的文档document对象外，Navigator浏览器中还提供了窗口（Window）对象以及历史（History）和位置（Location）对象。 　　浏览器对象(Navigator) 　　　　提供有关浏览器的信息 　　窗口对象(Windows) 　　　　Window对象处于对象层次的最顶端，它提供了处理Navigator窗口的方法和属性。 　　位置对象(Location) 　　　　Location对象提供了与当前打开的URL一起工作的方法和属性，它是一个静态的对象。 　　历史对象(History) 　　　　History对象提供了与历史清单有关的信息。 　　文档对象(Document) 　　　　document对象包含了与文档元素(elements)一起工作的对象，它将这些元素封装起来供编程人员使用。 　　编程人员利用这些对象，可以对WWW浏览器环境中的事件进行控制并作出处理。在JavaScript中提供了非常丰富的内部方法和属性,从而减轻了编程人员的工作,提高编程效率。这正是基于对象与面向对象的根本区别所在。在这些对象系统中,文档对象属于非常重要的,它位于最低层,但对于我们实现Web页面信息交互起作关键作用。因而它是对象系统的核心部分。 　 二、文档对象功能及其作用 　　在Navigator浏览器中，document文档对象是核心是，同时也是最重要的。见表6-1所示。 Links Anchor Form Method Prop 链接对象 锚对象 窗体对象 方法 对象 表6－1 document对象 　　从表6-1中可以看出，document对象的主要作用就是把这些基本的元素（如links,anchor等）包装起来，提供给编程人员使用。从另一个角度看，document对象中又是由属性和方法组成。 　 １、document中三个主要的对象 在document中主要有：links,anchor,form等三个最重要的对象： （１）anchor锚对象： anchor对象指的是&#60;A Name=&#8230;&#62; &#60;/A&#62;标识在HTML源码中存在时产生的对象。它包含着文档中所有的anchors信息。 （２）链接links对象 　　link对象指的是用&#60;A Href=&#8230;&#62; &#60;/A&#62;标记的连接一个超文本或超媒体的元素作为一个特定的URL。 （３）窗体（Form）对象 　　窗体对象是文档对象的一个元素，它含有多种格式的对象储存信息，使用它可以在JavaScript脚本中编写程序进行文字输入，并可以用来动态改变文档的行为。通过document. Forms[]数组来使得在同一个页面上可以有多个相同的窗体,使用forms[]数组要比使用窗体名字要方便得多。 例:下面就是一个使用窗体数组和窗体名字的例子。该程序使得两个窗体中的字段内容保持一致。 Test6_1.htm &#60;Html&#62; &#60;head&#62; &#60;/head&#62; &#60;body&#62; &#60;form &#62; &#60;input type=text  &#62; [...]]]></description>
		<wfw:commentRss>http://www.songlecn.com/2009/06/1068/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaScript窗口</title>
		<link>http://www.songlecn.com/2009/06/1059/</link>
		<comments>http://www.songlecn.com/2009/06/1059/#comments</comments>
		<pubDate>Fri, 05 Jun 2009 02:15:34 +0000</pubDate>
		<dc:creator>船长</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[窗口]]></category>

		<guid isPermaLink="false">http://www.songlecn.com/?p=1059</guid>
		<description><![CDATA[　JavaScript是基于对象的脚本编程语言，那么它的输入输出就是通过对象来完成的。其中有关输入可通过窗口（Window）对象来完成，而输出可通过文档（document）对象的方法来实现。 一、窗口及输入输出 请看下面例子： &#60;HTML&#62; &#60;Head&#62; &#60;script languaga=&#8221;JavaScript&#8221;&#62; Var test=window.prompt(&#8220;请输入数据:&#8221;); document.write(test+&#8221;JavaScript输入输出的例子&#8221;); &#60;/script&#62; &#60;/Head&#62; &#60;/HTML&#62; 　　其中window.prompt()就是一个窗口对象的方法，其基本作用是，当装入Web页面时在屏幕上显示一个具有“确定”和“取消”的对话框，让你输出数据。document.writle是一个文档对象的方法，它的基本功能，是实现Web页面的输出显示。见图1所示。 图1 　 1、窗口对象 　　该对象包括许多有用的属性、方法和事件驱动程序，编程人员可以利用这些对象控制浏览器窗口显示的各个方面，如对话框、框架等。在使用应注意以下几点： 　该对象对应于HTML文档中的&#60;Body&#62;和&#60;FrameSet&#62;两种标识； 　onload和onunload都是窗口对象属性； 　在JavaScript脚本中可直接引用窗口对象。如： window.alert(&#8220;窗口对象输入方法&#8221;) 可直接使用以下格式： alert(&#8220;窗口对象输入方法&#8221;) 　 2、窗口对象的事件驱动 　　窗口对象主要有装入Web文档事件onload和卸载时onunload事件。用于文档载入和停止载入时开始和停止更新文档。 3、窗口对象的方法 　　窗口对象的方法主要用来提供信息或输入数据以及创建一个新的窗口。 　　创建一个新窗口open() 使用window.open（参数表）方法可以创建一个新的窗口。其中参数表提供有窗口的主要特性和文档及窗口的命名。 　　具有OK按钮的对话框 alert()方法能创建一个具有OK按钮的对话框。 　　具有OK和Cancel按钮的对话框 confirm()方法为编程人员提供一个具有两个按钮的对话框。 　　具有输入信息的对话框 prompt()方法允许用户在对话框中输入信息，并可使用默认值，其基本格式如下prompt（“提示信息”，默认值）。 　 4、窗口对象中的属性 　　窗口对象中的属性主要用来对浏览器中存在的各种窗口和框架的引用，其主要属性有以下几个： （１）frames 确文档中帧的数目 frames（帧）作为实现一个窗口的分隔操作，起到非常有用的作用，在使用注意以下几点： 　　frames属性是通过HTML标识&#60;Frames&#62;的顺序来引用的，它包含了一个窗口中的全部帧数。 　　帧本身已是一类窗口，继承了窗口对象所有的全部属性和方法。 （２）Parent 指明当前窗口或帧的父窗口。 （３）defaultstatus:默认状态，它的值显示在窗口的状态栏中。 （４）status:包含文档窗口中帧中的当前信息。 （５）top:包括的是用以实现所有的下级窗口的窗口。 （６）window.指的是当前窗口 （７）self:引用当前窗口。 　 5、输出流及文档对象 　　在JavaScript文档对象中，提供了用于显示关闭、消除、打开HTML页面的输出流。 [...]]]></description>
		<wfw:commentRss>http://www.songlecn.com/2009/06/1059/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Javascrip中Event 的总结</title>
		<link>http://www.songlecn.com/2009/06/1053/</link>
		<comments>http://www.songlecn.com/2009/06/1053/#comments</comments>
		<pubDate>Thu, 04 Jun 2009 02:25:05 +0000</pubDate>
		<dc:creator>船长</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[Event]]></category>
		<category><![CDATA[Javascrip]]></category>

		<guid isPermaLink="false">http://www.songlecn.com/?p=1053</guid>
		<description><![CDATA[用 Javascript 实现了一个自定义的右键弹出菜单。鼠标点击事件的获取和计算是比较难点的事情。一般以为考虑兼容性（如 IE 5/6，FF），实际上还要考虑 HTML 文件在文件头的定义。而且，Event 事件和 Document 对象在 IE 和 NS 下又有各自不同的定义和用法。在这里总结一下，希望对其他朋友有个帮助。 下面是“无定义 HTML 的 Event 事件”的测试代码，存为 Event1.html，分别用 IE 和 Firefox 打开，点击页面就可看到结果。 下面是详细代码： &#60;html&#62; &#60;head&#62; &#60;meta http-equiv="Content-Type" c&#62; &#60;title&#62;无定义 HTML 的 Event 事件&#60;/title&#62; &#60;script language="javascript"&#62; function getvalue(e){     if (!document.all){         winW = window.innerWidth;         winH = window.innerHeight;      [...]]]></description>
		<wfw:commentRss>http://www.songlecn.com/2009/06/1053/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>常用的Javascript函数</title>
		<link>http://www.songlecn.com/2009/06/1045/</link>
		<comments>http://www.songlecn.com/2009/06/1045/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 02:14:39 +0000</pubDate>
		<dc:creator>船长</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[常用函数]]></category>

		<guid isPermaLink="false">http://www.songlecn.com/?p=1045</guid>
		<description><![CDATA[/*判断浏览器版本*/ var w3c=(document.getElementById)? true: false; var agt=navigator.userAgent.toLowerCase(); var ie = ((agt.indexOf(&#8220;msie&#8221;) != -1) &#38;&#38; (agt.indexOf(&#8220;opera&#8221;) == -1) &#38;&#38; (agt.indexOf(&#8220;omniweb&#8221;) == -1)); var ie5=(w3c &#38;&#38; ie)? true : false; var ns6=(w3c &#38;&#38; (navigator.appName==&#8221;Netscape&#8221;))? true: false; var op8=(navigator.userAgent.toLowerCase().indexOf(&#8220;opera&#8221;)==-1)? false:true; function ExChgCls(o,a,b){//切换对象的className o.className=o.className==a?b:a; } function ExChgHtml(o,a,b){//切换对象的innerHTML o.innerHTML=o.innerHTML==a?b:a; } function Oh(o,s){ //输出字符串给某个对象 Ob(o).innerHTML=s; } function SetSrc(o,s){//改变img、iframe等对象的src值 Ob(o).src=s; } function [...]]]></description>
		<wfw:commentRss>http://www.songlecn.com/2009/06/1045/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>获取Javascript函数名称</title>
		<link>http://www.songlecn.com/2009/06/1039/</link>
		<comments>http://www.songlecn.com/2009/06/1039/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 02:30:36 +0000</pubDate>
		<dc:creator>船长</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[函数名称]]></category>

		<guid isPermaLink="false">http://www.songlecn.com/?p=1039</guid>
		<description><![CDATA[获取Javscript执行函数名称的方法，具体的函数如下： 函数名称为getFuncName，在为了获取Javascript函数名称的时候，直接使用getFuncName函数 &#60;script language=&#8221;javascript&#8221;&#62; function getFuncName(_callee) { var _text = _callee.toString(); var _scriptArr = document.scripts; for (var i=0; i&#60;_scriptArr.length; i++) { var _start = _scriptArr[ i].text.indexOf(_text); if (_start != -1) { if (/^function\s*\(.*\).*\r\n/.test(_text)) { var _tempArr = _scriptArr[ i].text.substr(0, _start).split(&#8216;\r\n&#8217;); return _tempArr[_tempArr.length - 1].replace(/(var)&#124;(\s*)/g, &#8221;).replace(/=/g, &#8221;); } else { return _text.match(/^function\s*([^\(]+).*\r\n/)[1]; } } } } [...]]]></description>
		<wfw:commentRss>http://www.songlecn.com/2009/06/1039/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>理解JavaScript的caller,callee,call,apply</title>
		<link>http://www.songlecn.com/2009/06/1033/</link>
		<comments>http://www.songlecn.com/2009/06/1033/#comments</comments>
		<pubDate>Mon, 01 Jun 2009 02:11:54 +0000</pubDate>
		<dc:creator>船长</dc:creator>
				<category><![CDATA[javascript]]></category>
		<category><![CDATA[apply]]></category>
		<category><![CDATA[call]]></category>
		<category><![CDATA[callee]]></category>
		<category><![CDATA[caller]]></category>
		<category><![CDATA[javascript教程]]></category>

		<guid isPermaLink="false">http://www.songlecn.com/?p=1033</guid>
		<description><![CDATA[首先想说说javascript中函数的隐含参数：arguments Arguments 该对象代表正在执行的函数和调用它的函数的参数。 [function.]arguments[n] 参数function ：选项。当前正在执行的 Function 对象的名字。 n ：选项。要传递给 Function 对象的从0开始的参数值索引。 说明 Arguments是进行函数调用时，除了指定的参数外，还另外创建的一个隐藏对象。Arguments是一个类似数组但不是数组的对象，说它类似数组是因为其具有数组一样的访问性质及方式，可以由arguments[n]来访问对应的单个参数的值，并拥有数组长度属性length。还有就是arguments对象存储的是实际传递给函数的参数，而不局限于函数声明所定义的参数列表，而且不能显式创建 arguments 对象。arguments 对象只有函数开始时才可用。下边例子详细说明了这些性质: //arguments 对象的用法。 function ArgTest(a, b){     var i, s = "The ArgTest function expected ";     var numargs = arguments.length;      // 获取被传递参数的数值。     var expargs = ArgTest.length;        // 获取期望参数的数值。     if (expargs [...]]]></description>
		<wfw:commentRss>http://www.songlecn.com/2009/06/1033/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

