<?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>Leery&#039; blog &#187; JavaScript</title>
	<atom:link href="http://www.cnpublic.com/category/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.cnpublic.com</link>
	<description>A New Linuxer!</description>
	<lastBuildDate>Fri, 23 Jul 2010 06:13:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>你真的会写JavaScript吗？</title>
		<link>http://www.cnpublic.com/2009/07/javascript-you-really-write-it/</link>
		<comments>http://www.cnpublic.com/2009/07/javascript-you-really-write-it/#comments</comments>
		<pubDate>Fri, 03 Jul 2009 01:51:11 +0000</pubDate>
		<dc:creator>wilensky</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.cnpublic.com/?p=14</guid>
		<description><![CDATA[原文地址：http://www.cnblogs.com/litao229/archive/2009/06/19/1506859.html
PS：作者说他也是转载自CSDN某位大侠的，但是原文地址我没找到，只好贴这个了。
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-华丽的分割线&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-


最近，我面试了一个有五年 Web 应用程序开发经验的软件开发人员。四年半来她一直在从事 JavaScript 相关的工作，她自认为 JavaScript 技能非常好，但在不久之后我就发现实际上她对 JavaScript 知之甚少。话虽这样说，但我确实没有责备她的意思。JavaScript 真的是很有趣。很多人（包括我自己，直到最近！）都认为自己很擅长 JavaScript 语言，因为他们都知道 C/C++/C#，或者有一些以前的编程经验。
在某种程度上，这种假设并不是完全没有根据的。用 JavaScript 很容易做些简单的事情。入门的门槛很低，该语言很宽松，它不需要您知道很多细节就可以开始用它进行编码。甚至非编程人员也可能用它在几个小时内为主页编写一些有用的脚本。
的确，直到最近，仅仅凭借 MSDN® DHTML 参考资料和我的 C++/C# 经验，我也总能勉强利用这点 JavaScript 知识完成一些任务。只是当我开始编写真实的 AJAX 应用程序时，我才意识到实际上我的 JavaScript 知识还非常不够。这个新一代的 Web 应用程序的复杂性和交互性需要程序员以完全不同的方法来编写 JavaScript 代码。它们是真正的 JavaScript 应用程序！我们在编写一次性脚本时一直采用的方法已完全不再有效。
面向对象编程 (OOP) 是一种流行的编程方法，很多 JavaScript 库中都使用这种方法，以便更好地管理和维护基本代码。JavaScript 支持 OOP，但与诸如 C++、C# 或 Visual Basic® 等流行的 Microsoft® .NET Framework 兼容语言相比，它支持 OOP 的方式非常不同，因此主要使用这些语言的开发人员开始可能会觉得在 JavaScript 中使用 OOP 很奇怪而且不直观。我写本文就是为了深入讨论 JavaScript 语言实际上如何支持面向对象编程，以及您如何使用这一支持在 [...]]]></description>
		<wfw:commentRss>http://www.cnpublic.com/2009/07/javascript-you-really-write-it/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Javascript在IE和Firefox下差异及解决方案</title>
		<link>http://www.cnpublic.com/2009/07/js-firefox-ie/</link>
		<comments>http://www.cnpublic.com/2009/07/js-firefox-ie/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 01:42:55 +0000</pubDate>
		<dc:creator>wilensky</dc:creator>
				<category><![CDATA[JavaScript]]></category>

		<guid isPermaLink="false">http://www.cnpublic.com/?p=12</guid>
		<description><![CDATA[1.document.formName.item(itemName) 问题
说明:IE下,可以使用 document.formName.item(itemName)或 document.formName.elements[elementName];Firefox下,只能使用 document.formName.elements[elementName].
解决方法:统一使用document.formName.elements[elementName].
2.集合类对象问题
说明:IE下,可以使用()或[]获取集合类对象;Firefox下,只能使用[]获取集合类对象.
解决方法:统一使用[]获取集合类对象.
3.自定义属性问题
说明:IE下,可以使用获取常规属性的方法来获取自定义属性,也可以使用getAttribute()获取自定义属性;Firefox下,只能使用getAttribute()获取自定义属性.
解决方法:统一通过getAttribute()获取自定义属性.
4.eval(idName)问题
说明:IE下,,可以使用eval(idName)或getElementById(idName)来取得id为idName的HTML对象;Firefox下只能使用getElementById(idName)来取得id为idName的HTML对象.
解决方法:统一用getElementById(idName)来取得id为idName的HTML对象.
5.变量名与某HTML对象ID相同的问题
说明:IE下,HTML对象的ID可以作为document的下属对象变量名直接使用;Firefox下则不能.Firefox下,可以使用与HTML对象ID相同的变量名;IE下则不能。
解决方法:使用document.getElementById(idName)代替document.idName.最好不要取HTML对象ID相同的变量名,以减少错误;在声明变量时,一律加上var,以避免歧义.

6.const问题
说明:Firefox下,可以使用const关键字或var关键字来定义常量;IE下,只能使用var关键字来定义常量.
解决方法:统一使用var关键字来定义常量
7.input.type属性问题
说明:IE下input.type属性为只读;但是Firefox下input.type属性为读写.
8.window.event问题
说明:window.event只能在IE下运行,而不能在Firefox下运行,这是因为Firefox的event只能在事件发生的现场使用.
解决方法:
IE:
&#60;input name=&#8221;Button8_1&#8243; type=&#8221;button&#8221; value=&#8221;IE&#8221; onclick=&#8221;javascript:gotoSubmit8_1()&#8221;/&#62;
&#8230;
&#60;script language=&#8221;javascript&#8221;&#62;
function gotoSubmit8_1() {
&#8230;
alert(window.event); //use window.event
&#8230;
}
&#60;/script&#62;
IE&#38;Firefox:
&#60;input name=&#8221;Button8_2&#8243; type=&#8221;button&#8221; value=&#8221;IE&#8221; onclick=&#8221;javascript:gotoSubmit8_2(event)&#8221;/&#62;
&#8230;
&#60;script language=&#8221;javascript&#8221;&#62;
function gotoSubmit8_2(evt) {
&#8230;
evt=evt?evt:(window.event?window.event:null);
alert(evt); //use evt
&#8230;
}
&#60;/script&#62;9.event.x与event.y问题
说明:IE下,even对象有x,y属性,但是没有pageX,pageY属性;Firefox下,even对象有pageX,pageY属性,但是没有x,y属性.
解决方法:使用mX(mX = event.x ? event.x : event.pageX;)来代替IE下的event.x或者Firefox下的event.pageX.
10.event.srcElement问题
说明:IE下,even对象有srcElement属性,但是没有target属性;Firefox下,even对象有target属性,但是没有srcElement属性.
解决方法:使用obj(obj = event.srcElement ? event.srcElement : event.target;)来代替IE下的event.srcElement或者Firefox下的event.target.
11.window.location.href问题
说明:IE或者Firefox2.0.x下,可以使用window.location或window.location.href;Firefox1.5.x下,只能使用window.location.
解决方法:使用window.location来代替window.location.href.
12.模态和非模态窗口问题
说明:IE下,可以通过showModalDialog和showModelessDialog打开模态和非模态窗口;Firefox下则不能.
解决方法:直接使用window.open(pageURL,name,parameters)方式打开新窗口。如果需要将子窗口中的参数传递回父窗口,可以在子窗口中使用window.opener来访问父窗口. 例如：var parWin = window.opener; parWin.document.getElementById(Aqing).value = Aqing;
13.frame问题
以下面的frame为例：
&#60;frame src=&#8221;xxx.html&#8221; id=&#8221;frameId&#8221; name=&#8221;frameName&#8221; /&#62;
(1)访问frame对象:
IE:使用window.frameId或者window.frameName来访问这个frame对象.
Firefox:只能使用window.frameName来访问这个frame对象.
另外，在IE和Firefox中都可以使用window.document.getElementById(frameId)来访问这个frame对象.
(2)切换frame内容:
在IE和Firefox中都可以使用window.document.getElementById(testFrame).src = xxx.html或window.frameName.location = xxx.html来切换frame的内容.
如果需要将frame中的参数传回父窗口，可以在frme中使用parent来访问父窗口。例如：parent.document.form1.filename.value=Aqing;
14.body问题
Firefox的body在body标签没有被浏览器完全读入之前就存在；而IE的body则必须在body标签被浏览器完全读入之后才存在.
Firefox：
&#60;body&#62;
&#60;script type=&#8221;text/javascript&#8221;&#62;
document.body.onclick = function(evt){
evt = evt [...]]]></description>
		<wfw:commentRss>http://www.cnpublic.com/2009/07/js-firefox-ie/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>window.location.href 无效的解决方案</title>
		<link>http://www.cnpublic.com/2009/06/windowlocationhref-invalid/</link>
		<comments>http://www.cnpublic.com/2009/06/windowlocationhref-invalid/#comments</comments>
		<pubDate>Mon, 29 Jun 2009 15:53:46 +0000</pubDate>
		<dc:creator>wilensky</dc:creator>
				<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[js]]></category>

		<guid isPermaLink="false">http://www.cnpublic.com/?p=6</guid>
		<description><![CDATA[ 前段时间做项目，用到了window.location.href 来页面跳转，不过这个方法很奇怪，有时候会不起作用]]></description>
		<wfw:commentRss>http://www.cnpublic.com/2009/06/windowlocationhref-invalid/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->