﻿<?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-薄薄的Java-文章分类-Java的东东</title><link>http://www.blogjava.net/bobojava/category/38187.html</link><description>技术本来很广，但我们可以把它变薄！</description><language>zh-cn</language><lastBuildDate>Sat, 29 Aug 2009 00:39:10 GMT</lastBuildDate><pubDate>Sat, 29 Aug 2009 00:39:10 GMT</pubDate><ttl>60</ttl><item><title>【转】JS代码在IE和FireFox间的区别</title><link>http://www.blogjava.net/bobojava/articles/291851.html</link><dc:creator>Rique</dc:creator><author>Rique</author><pubDate>Wed, 19 Aug 2009 11:08:00 GMT</pubDate><guid>http://www.blogjava.net/bobojava/articles/291851.html</guid><wfw:comment>http://www.blogjava.net/bobojava/comments/291851.html</wfw:comment><comments>http://www.blogjava.net/bobojava/articles/291851.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/bobojava/comments/commentRss/291851.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/bobojava/services/trackbacks/291851.html</trackback:ping><description><![CDATA[<p>1.&nbsp;&nbsp;&nbsp; HTML 对象的 id 作为对象名的问题<br />
IE：HTML 对象的 ID 可以作为 document 的下属对象变量名直接使用<br />
FF：不支持<br />
解决方法：使用document.getElementById替代document.all</p>
<p>2.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果控件只有name,没有id, 用getElementById时: <br />
IE：可以找到对象<br />
FF：返回NULL<br />
解决方法：所有控件必须设置ID属性</p>
<p>3.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Evel:<br />
IE：支持，利用 eval(idName) 可以取得 id 为 idName 的 HTML 对象<br />
FF：不支持。<br />
解决方法：统一使用getElementById(idName) 代替 eval(idName)。</p>
<p>4.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Event：<br />
IE：用全局对象window.event<br />
FF：event只能在事件发生的现场使用，在调用函数时传入event对象<br />
解决方法：使用之前做一下浏览器类型判断，各用各的。</p>
<p>5.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 对象名称中美元符号&#8216;$&#8217;改为使用下划线&#8216;_&#8217;</p>
<p>6.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 集合类对象问题<br />
IE：可以使用()或[]获取集合类对象<br />
FF：只能使用[]获取集合类对象<br />
现有代码中存在许多，不能在 FF 下运行<br />
解决方法:统一使用[]获取集合类对象。document.form.item("itemName") 这样的语句改为document.form.elements["elementName"]</p>
<p>7.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 变量名与某 HTML 对象 id 相同的问题<br />
IE：不能使用与 HTML 对象 id 相同的变量名<br />
FF：可以使用<br />
解决方法：在声明变量时，一律加上 var ，以避免歧义，这样在 IE 中亦可正常运行。<br />
此外，最好不要取与 HTML 对象 id 相同的变量名，以减少错误。</p>
<p>8.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Event定位问题<br />
IE：支持event.x 和event.y<br />
FF：支持event.pageX和event.pageY<br />
解决方法，统一使用event.clientX和event.clientY，但是在FF中event.clientX 与 event.pageX 有微妙的差别（当整个页面有滚动条的时候），不过大多数时候是等效的。如果要完全一样，可以判断浏览器类型后对应使用。</p>
<p>9.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 父结点的问题<br />
IE：parentElement parentElement.children<br />
FF：parentNode parentNode.childNodes<br />
childNodes的下标的含义在IE和FF中不同，FF使用DOM规范，childNodes中会插入空白文本节点。一般可以通过node.getElementsByTagName()来回避这个问题。</p>
<p><br />
当html中节点缺失时，IE和FF对parentNode的解释不同，例如<br />
&lt;form&gt;<br />
&lt;table&gt;<br />
&nbsp; &lt;input/&gt;<br />
&lt;/table&gt;<br />
&lt;/form&gt;<br />
IE：input.parentNode的值为空节点<br />
FF：input.parentNode的值为form <br />
FF中节点没有removeNode方法，必须使用如下方法 node.parentNode.removeChild(node)</p>
<p>10.&nbsp;&nbsp; const 问题<br />
现有问题：<br />
IE：不支持 const 关键字。如 const constVar = 32; 在IE中这是语法错误。<br />
FF：支持<br />
解决方法：不使用 const ，以 var 代替。</p>
<p>11.&nbsp;&nbsp; body 对象<br />
IE：在body标签完全被读入之后才存在<br />
FF：在body标签没有被浏览器完全读入之前就存在</p>
<p>12.&nbsp;&nbsp; 自定义属性问题<br />
IE：可以使用获取常规属性的方法来获取自定义属性,也可以使用getAttribute()获取自定义属性<br />
FF：只能使用getAttribute()获取自定义属性.<br />
解决方法：统一通过getAttribute()获取自定义属性</p>
<p>13.&nbsp;&nbsp; event.srcElement问题<br />
IE：even.srcElement<br />
FF：even.target<br />
解决方法:使用时判断浏览器类型，各用各的。</p>
<p>14.&nbsp;&nbsp; 模态和非模态窗口<br />
IE：支持模态和非模态窗口<br />
FF：不支持<br />
解决方法：直接使用window.open(pageURL,name,parameters)方式打开新窗口。如果需要将子窗口中的参数传递回父窗口,可以在子窗口中使用window.opener来访问父窗口。</p>
<p>15.&nbsp;&nbsp; innerText<br />
IE：innerText<br />
FF：textContent</p>
<p>16.&nbsp;&nbsp; 类似 obj.style.height = imgObj.height 的语句<br />
IE：有效<br />
FF：无效<br />
解决方法：统一使用obj.style.height = imgObj.height + 'px';</p>
<p>&nbsp;</p>
<p>本文来自CSDN博客:http://blog.csdn.net/nileel/archive/2009/08/19/4461687.aspx</p>
<img src ="http://www.blogjava.net/bobojava/aggbug/291851.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/bobojava/" target="_blank">Rique</a> 2009-08-19 19:08 <a href="http://www.blogjava.net/bobojava/articles/291851.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>