<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>~~~~~梦想的翅膀~~~~~</title>
    <description></description>
    <link>http://zhanglwangll.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>BIRT and POJOs as datasources example</title>
        <author>redfeather</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhanglwangll.javaeye.com">redfeather</a>&nbsp;
          链接：<a href="http://zhanglwangll.javaeye.com/blog/50312" style="color:red;">http://zhanglwangll.javaeye.com/blog/50312</a>&nbsp;
          发表时间: 2007年01月25日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>In this sample i'll try to demostrate how to use POJOs as DataSource. </p>
<div id="a000029more">
<div id="more">
<h2>Java Classes </h2>
<h3>Contact.java</h3>
<pre>package gr.osmosis.report.data;
public class Contact {
    String fname;
    String lname;
    String phone;
    
    public Contact(String fname, String lname, String phone){
        this.fname = fname;
        this.lname = lname;
        this.phone = phone;
    }
    
    /**
     * @return Returns the fname.
     */
    public String getFname() {
        return fname;
    }
    /**
     * @param fname The fname to set.
     */
    public void setFname(String fname) {
        this.fname = fname;
    }
    /**
     * @return Returns the lname.
     */
    public String getLname() {
        return lname;
    }
    /**
     * @param lname The lname to set.
     */
    public void setLname(String lname) {
        this.lname = lname;
    }
    /**
     * @return Returns the phone.
     */
    public String getPhone() {
        return phone;
    }
    /**
     * @param phone The phone to set.
     */
    public void setPhone(String phone) {
        this.phone = phone;
    }
}
</pre>
<h3>ContactListFactory.java</h3>
<pre>package gr.osmosis.report.data;
public class ContactListFactory {
    
    public Contact[] createContactList(){
        Contact[] c = new Contact[4];
        
        c[0] = new Contact(&quot;stavros&quot;, &quot;kounis&quot;, &quot;2310886269&quot;);
        c[1] = new Contact(&quot;dimitris&quot;, &quot;kounis&quot;, &quot;2310888270&quot;);
        c[2] = new Contact(&quot;dimitris&quot;, &quot;adamos&quot;, &quot;2310998417&quot;);
        c[3] = new Contact(&quot;nikos&quot;, &quot;koufotolis&quot;, &quot;2321013770&quot;);
        
        return c;
    }
}
</pre>
<h2>Report</h2>
Create a new BIRT report file (.rptdesign) and name it (for example) contactscript.rptdesign.
<h3>Datasources</h3>
<img src="file:///C:/Documents%20and%20Settings/Administrator/My%20Documents/Stavros'%20Scratchpad%20BIRT%20and%20POJOs%20as%20datasources%20example.files/DataExlorer.gif" height="466" align="right" alt="DataExlorer.gif" width="307" />
<p>Change to &quot;Report Design&quot; perspective. Find the &quot;DataExplorer&quot; View and create a new &quot;Data Source -&gt; Script Data Source&quot; (named srcScript).</p>
<p>Now right click on &quot;Data Sets&quot; node and create a new dataset:<br />
</p>
<pre><br />
Data Set Name: setScript<br />
DataSource: srcScript (we have allready create it above)<br />
</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p><strong>Set up columns</strong><br />
Right click in your just created data set (setScript) and select &quot;edit&quot;<br />
In the &quot;Edit Data Set&quot; Window select the node &quot;Output Columns&quot;. <br />
Add here 3 entries:</p>
<pre>Name / Type
--------------
columnFirstName / Any
columnLastName / Any
columnPhoneNumber / Any
</pre>
<br />
<img src="file:///C:/Documents%20and%20Settings/Administrator/My%20Documents/Stavros'%20Scratchpad%20BIRT%20and%20POJOs%20as%20datasources%20example.files/EditDataSet.gif" height="516" alt="EditDataSet.gif" width="816" /> <br />
<strong>Script code</strong> <br />
Select now your Data Set (setScript) and set your report editor to have &quot;Code&quot; tab selected
<p>1. put the below code in <strong>open</strong> method of your DataSet</p>
<pre>count = 0;
cf = new Packages.gr.osmosis.report.data.ContactListFactory();
c = cf.createContactList();
</pre>
<p>now we have an array of Contacts stored in &quot;c&quot; variable.</p>
<p><img src="file:///C:/Documents%20and%20Settings/Administrator/My%20Documents/Stavros'%20Scratchpad%20BIRT%20and%20POJOs%20as%20datasources%20example.files/open.gif" height="494" alt="open.gif" width="875" /></p>
<p>2. put the below code in <strong>fetch</strong> method of your DataSet</p>
<pre>if (count &lt; c.length-1){
	count ++;
	row[&quot;columnFirstName&quot;] = c[count].getFname();
	row[&quot;columnLastName&quot;] = c[count].getLname();
	row[&quot;columnPhoneNumber&quot;] = c[count].getPhone();
	return true;
}

<p>return false;<br />
</p></pre>
<p>&nbsp;</p>
<p><img src="file:///C:/Documents%20and%20Settings/Administrator/My%20Documents/Stavros'%20Scratchpad%20BIRT%20and%20POJOs%20as%20datasources%20example.files/fetch.gif" height="469" alt="fetch.gif" width="860" /></p>
<h3>Report Design</h3>
In your report editor change to &quot;Layout&quot; Tab
<p>In Data Explorer View your data set must have 3 children nodes (one for each column you have created). Drag 'n drop each one from Data Explorer View to report's layout view.</p>
<h3>Preview</h3>
Here is a litle problem when we are working in design mode. Report's script must be able to find our java classes (Contact.java, ContactListFactory.java). Report designer use BIRT's web-app viewer to render (preview) the report. But this WEB-APP does not know where to look for our java classes. This web-app exist as an eclipse plug-in.
<p>for example:<br />
</p>
<pre><br />
C:\JProgramFiles\eclipse-SDK-3.0.2-win32\eclipse\plugins\org.eclipse.birt.report.viewer_1.0.0<br />
</pre>
<p>&nbsp;</p>
<p>We have to put our classes in a &quot;classes&quot; folder in this web-app. To do this create a &quot;classes&quot; folder at birt\web-inf.</p>
<p>Build Contact.java and ContactListFactory.java and put the produced .class files in this &quot;classes&quot; folder.<br />
Dont forget to create inside &quot;classes&quot; folder the directory structure that match the package name.</p>
<p>for example:<br />
</p>
<pre><br />
if you just copy paste the code from this post then you must have a path like:<br />
C:\JProgramFiles\eclipse-SDK-3.0.2-win32\eclipse\plugins\org.eclipse.birt.report.viewer_1.0.0\birt\WEB-INF\classes\gr\osmosis\report\data<br />
</pre>
<p>&nbsp;</p>
<p>Now you can preview your report selecting &quot;Preview&quot; tab.</p>
<p><img src="file:///C:/Documents%20and%20Settings/Administrator/My%20Documents/Stavros'%20Scratchpad%20BIRT%20and%20POJOs%20as%20datasources%20example.files/report.gif" height="356" alt="report.gif" width="555" /></p>
<h2>&nbsp;</h2>
</div>
</div>
          <br/>
          <span style="color:red;">
            <a href="http://zhanglwangll.javaeye.com/blog/50312#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 25 Jan 2007 09:38:21 +0800</pubDate>
        <link>http://zhanglwangll.javaeye.com/blog/50312</link>
        <guid>http://zhanglwangll.javaeye.com/blog/50312</guid>
      </item>
      <item>
        <title>iis无法启动,发生意外错误0x8ffe2740?</title>
        <author>redfeather</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhanglwangll.javaeye.com">redfeather</a>&nbsp;
          链接：<a href="http://zhanglwangll.javaeye.com/blog/44616" style="color:red;">http://zhanglwangll.javaeye.com/blog/44616</a>&nbsp;
          发表时间: 2007年01月09日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          原因 <br />
如果系统中存在端口冲突就有可能发生本情况. IIS默认使用80端口进行HTTP通信.  如果除IIS外的应用程序正在运行并且正在相同的IP地址上使用80端口,在您试图使用IIS管理器启动网站时您也可能收到该错误讯息.  <br />
<br />
<br />
解决方法 <br />
要解决这个问题,您可以进行以下任一项操作: <br />
&bull; 在IIS管理器中更改网站绑定端口为除80端口外的其它端口.  <br />
&bull; 停止正在使用80端口的应用程序,然后从IIS管理器中启动网站. <br />
更多信息  <br />
您可以使用诸如TCPView或FPort等第三方工具来判断其它正在使用80端口的其它应用程序.
          <br/>
          <span style="color:red;">
            <a href="http://zhanglwangll.javaeye.com/blog/44616#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 09 Jan 2007 10:49:26 +0800</pubDate>
        <link>http://zhanglwangll.javaeye.com/blog/44616</link>
        <guid>http://zhanglwangll.javaeye.com/blog/44616</guid>
      </item>
      <item>
        <title>白色的新年</title>
        <author>redfeather</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhanglwangll.javaeye.com">redfeather</a>&nbsp;
          链接：<a href="http://zhanglwangll.javaeye.com/blog/41674" style="color:red;">http://zhanglwangll.javaeye.com/blog/41674</a>&nbsp;
          发表时间: 2006年12月30日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          早上一起床 看到一片白色的世界<br />
本来没对天气预报的小雪 报有这么大期望的<br />
于是心情很好<br />
坐上蜗牛公交车 准备好迟到<br />
<br />
又是一年过去了<br />
2007就是我的本命年了<br />
我要忏悔 今天的工作还没有开始做<br />
就跑到blog上来抒情<br />
<br />
明年是不一样的一年 要发生很多重大事件<br />
我的毕设课题大部分要完结<br />
工作也要在年底之前落实<br />
昨晚老爸打来电话说他第二次下岗了<br />
离退休还有10年<br />
明年也是我妈退休的一年<br />
她还要照顾生病卧床在家良久的姥爷<br />
<br />
如果在新年里能够许愿的话<br />
我希望我的父母能够快乐健康<br />
而我知道他们现在大部分的快乐 只会源于我<br />
觉得这是中国父母的悲哀<br />
他们没有更多的想过自己 按照自己的意愿生活<br />
这也是中国的传统吧<br />
<br />
终于又说会到了伤感<br />
我不要伤感 我要努力<br />
爸爸能打电话告诉我<br />
而不像6年前第一次时只字不提<br />
我很明白 因为我长大了<br />
我是成年人了<br />
我要承担起家庭的责任了<br />
我想我是等待着一刻的来临的 期待为我爱更爱我的人们做些什么
          <br/>
          <span style="color:red;">
            <a href="http://zhanglwangll.javaeye.com/blog/41674#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Sat, 30 Dec 2006 10:09:34 +0800</pubDate>
        <link>http://zhanglwangll.javaeye.com/blog/41674</link>
        <guid>http://zhanglwangll.javaeye.com/blog/41674</guid>
      </item>
      <item>
        <title>大家遇到过blog导入的问题么？msn space导不过来啊</title>
        <author>redfeather</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhanglwangll.javaeye.com">redfeather</a>&nbsp;
          链接：<a href="http://zhanglwangll.javaeye.com/blog/41570" style="color:red;">http://zhanglwangll.javaeye.com/blog/41570</a>&nbsp;
          发表时间: 2006年12月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          刚刚从msn space迁过来没多久<br />
msn花哨功能太多 我用不上 而且访问速度又慢 经常上不去<br />
所以准备弃之<br />
<br />
但是想把原来的内容导过来<br />
而javaeye的导入功能总说找不到 我的space地址<br />
说它不存在 郁闷s<br />
大家有没有遇到过这样的问题呢？<br />
<br />
求助.............！
          <br/>
          <span style="color:red;">
            <a href="http://zhanglwangll.javaeye.com/blog/41570#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 29 Dec 2006 16:07:03 +0800</pubDate>
        <link>http://zhanglwangll.javaeye.com/blog/41570</link>
        <guid>http://zhanglwangll.javaeye.com/blog/41570</guid>
      </item>
      <item>
        <title>读易中天的blog</title>
        <author>redfeather</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhanglwangll.javaeye.com">redfeather</a>&nbsp;
          链接：<a href="http://zhanglwangll.javaeye.com/blog/41540" style="color:red;">http://zhanglwangll.javaeye.com/blog/41540</a>&nbsp;
          发表时间: 2006年12月29日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          我是个不爱读书 不喜看报的没文化的人<br />
自问对什么都不敏感<br />
对任何事都缺乏长久的喜爱之情<br />
所以凡事不能坚持<br />
（不能再说了，再说要出人命了）<br />
<br />
认识易中天＆大多数人一样 通过百家讲坛<br />
今天无意中把易老师的blog从sina中翻了出来<br />
又在易老师那里认识了一些人<br />
多知道了一些中国人该知道的事情<br />
《美的历程》我的一个很好很好很好很好很好的朋友<br />
曾不止一次跟我说过这本书非常好<br />
我非常欣赏我这个朋友<br />
她身上有太多我想有却不能有的品质＆精神<br />
每次想到她我都精神振奋<br />
对于我这样懒惰的人<br />
＆她这样勤奋的人交流也是我获得知识的一条捷径吧 <br />
<br />
又说远了<br />
在易老师的blog上我认识了《美的历程》的作者<br />
让我更想看看这本书了<br />
易老师的文笔实在很能抓住人<br />
就如他的讲课一样<br />
让我在他的blog上不舍离去<br />
看到一些话让人心潮起伏 似有感悟有说不出<br />
只能深恨自己白当了中国人<br />
该表达思想的时候却说不出中国话来<br />
只有从别人的眼中看世界了<br />
<br />
<span style="font-size: 10.5pt; font-family: 宋体;"><span style="font-family: 宋体;"><span style="font-size: 10.5pt; font-family: 宋体;"><font size="3">&ldquo;真正的乐观主义者是不会快乐的，彻底的悲观主义者才快乐&rdquo;<br />
<br />
</font></span></span></span>
          <br/>
          <span style="color:red;">
            <a href="http://zhanglwangll.javaeye.com/blog/41540#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 29 Dec 2006 13:52:52 +0800</pubDate>
        <link>http://zhanglwangll.javaeye.com/blog/41540</link>
        <guid>http://zhanglwangll.javaeye.com/blog/41540</guid>
      </item>
      <item>
        <title>平安※圣诞夜</title>
        <author>redfeather</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhanglwangll.javaeye.com">redfeather</a>&nbsp;
          链接：<a href="http://zhanglwangll.javaeye.com/blog/41013" style="color:red;">http://zhanglwangll.javaeye.com/blog/41013</a>&nbsp;
          发表时间: 2006年12月27日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          我是个懒人 所以两天晚上的事情也要合到一天写了<br />
<br />
※平安夜※<br />
<br />
24号上午 晓辉给送来了路由器&nbsp; 然后就到楼下簋街新开的烤翅店 ＆几个高中同学小聚了一下<br />
<br />
不知道为什么不那么开心 没有尽兴的感觉<br />
<br />
6个人 5个高中同学 1个同学的GF 4男2女<br />
<br />
唯一的印象是2男不断的找着各种理由碰杯 2男不停的讨论着技术问题<br />
<br />
我感觉自己出现在了不合适的时间不合适的地点凑到了不合适的人群里<br />
<br />
其实都是最好最好的朋友 也许是我自己找不到感觉<br />
<br />
并为了这个不如期待的美好的午餐 错过了小龟的电话<br />
<br />
下午回到家 坐在床上 心里就一个感觉 闷<br />
<br />
想出去 透透气<br />
<br />
于是约了一个MM去看了一场电影 如大家预料的－－黄金甲<br />
<br />
感觉是一个完整故事的梗概介绍<br />
<br />
前因后果 点到为止 在心里的感觉不是很流畅<br />
<br />
巩俐的戏最多 发哥从头到尾都是一副面孔<br />
<br />
刘烨的表情倒是很丰富&nbsp; 但他诠释出的人物 给我的感觉就是欠扁找抽<br />
<br />
让人很不明白为什么两个女人都那么爱他 <br />
<br />
对剩下的人印象模糊 杰王子眼睛太小了 有碍于观众交流<br />
<br />
电影散场时都快9点了 两个无聊寂寞的MM 从东四步行到王府井<br />
<br />
想去看看教堂有什么节目 穿过人烟稀少的两条街 <br />
<br />
发现步行街上绝对是＆白天一样的热闹 到处是人 感觉到节日的气氛了<br />
<br />
走进教堂的时候 发现教堂被圈了起来<br />
<br />
原来在这个对耶稣一家人来说盛大的节日<br />
<br />
是只有信徒们有资格礼拜的<br />
<br />
我们这些明显是看热闹的人要靠边站<br />
<br />
不过我＆MM在教堂外面自拍的大头贴效果很好<br />
<br />
黑黑的背景上 只能看到俩大头 呵呵<br />
<br />
希望以后MM在异国他乡与帅锅共度佳节的时候 这些能成为美好的回忆<br />
<br />
11点的时候 消夜面爱面<br />
<br />
坐上出租车的时候 我的意识已经模糊了<br />
<br />
本来是想找个PUB或者CLUB的<br />
<br />
但没能走的进去 呵呵<br />
<br />
※圣诞夜※<br />
<br />
可敬可爱的小湛同学发起的聚会<br />
<br />
让陌生的男女围坐到了一张桌子上 呵呵<br />
<br />
坐了一个半小时汽车 到南门涮肉的时候 <br />
<br />
除了冷我已经感受不到其他了<br />
<br />
还好有真真＆小湛温暖的笑容：））<br />
<br />
小湛带来的GG们品质不错 一看个个都是北京文明好青年<br />
<br />
真真同事介绍来的男同胞 都是开心果 把气氛带动了起来<br />
<br />
女孩子们很文静的样子 （不知道除了我还有谁是装的）<br />
<br />
托小湛的福 我第一次参加这样的聚会<br />
<br />
小湛是名副其实的Party's Queeeeeeeeeeen 呵呵<br />
<br />
策划 组织 买蛋糕 考虑周相 服务都很到位 是很好的组织者呢！：））<br />
<br />
对了忘了说坐在我旁边的心心 她可是很明艳照人呢<br />
<br />
我不小心窥到了 藏在柔顺发丝下裸露的美背 顿时口水就稀里哗啦的：）））<br />
<br />
不知道后来有人给她打电话没 嘿嘿<br />
<br />
11点半推开家门的时候<br />
<br />
把老妈吓了一跳 <br />
<br />
居然没有被老爸 迎头痛骂 倒是意料之外了<br />
<br />
我记得我们家的规矩是10点前必须回家啊<br />
<br />
嘿嘿看来姑娘是长大了 不用管了...<br />
<br />
离1号放假 元旦前是要连续工作7天的<br />
<br />
因为24 25号我都睡的晚 <br />
<br />
白天基本处于梦游状态 所以这周我还是工作5天嘿嘿<br />
<br />
岁末了 我心荒荒 无心工作啊<br />
<br />
提前祝大家元旦快乐 心想事成（以下省略200字）....！
          <br/>
          <span style="color:red;">
            <a href="http://zhanglwangll.javaeye.com/blog/41013#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 27 Dec 2006 13:28:06 +0800</pubDate>
        <link>http://zhanglwangll.javaeye.com/blog/41013</link>
        <guid>http://zhanglwangll.javaeye.com/blog/41013</guid>
      </item>
      <item>
        <title>标准就是标准，就应改贯彻执行，不执行真应该拉出去毙了！！</title>
        <author>redfeather</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhanglwangll.javaeye.com">redfeather</a>&nbsp;
          链接：<a href="http://zhanglwangll.javaeye.com/blog/40032" style="color:red;">http://zhanglwangll.javaeye.com/blog/40032</a>&nbsp;
          发表时间: 2006年12月21日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          学习javascript有两三个月的时间<br />
<br />
从一开始连getElement***都不会用到现在可以连蒙带猜的解决一些问题<br />
<br />
其中经历不知道多少次犹豫彷徨的心里历程<br />
<br />
这个功能实现的了么---&gt; 给我一年也搞不出来---&gt;根本都不明白，什么东西啊---&gt; 似乎有点眉目---&gt;又都全乱了---&hellip;&hellip;--&gt;真想放弃，是人肯定做不出来--&hellip;&hellip;--&gt;终于解决<br />
<br />
了，但思路还不是特别清晰<br />
<br />
跌跌撞撞跟着一个系统开发下来，才开始看《JS高级程序设计》这本书（不错的书，推荐看）<br />
<br />
终于在看到别人的代码的时候，能感觉到这些符号全都认识，大约都是&times;&times;&times;意思<br />
<br />
但是现在，新的让我头痛的问题又出现了，真是让人崩溃<br />
<br />
原来的IE下开发的系统，在FF下完全是一坨垃圾了（要改成兼容FF的）<br />
<br />
N多功能失效，M多效果失常<br />
<br />
我唯一的感觉就是灾难降临了&hellip;&hellip;<br />
<br />
对&ldquo;标准&rdquo;从来都没有深刻的概念，什么W3C的伟大意义根本体会不到<br />
<br />
现在终于知道了遵守W3C的FF＆不按章办事的IE的巨大差距，我可以感受到一点点了<br />
<br />
555555555555555555555
          <br/>
          <span style="color:red;">
            <a href="http://zhanglwangll.javaeye.com/blog/40032#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Thu, 21 Dec 2006 17:18:24 +0800</pubDate>
        <link>http://zhanglwangll.javaeye.com/blog/40032</link>
        <guid>http://zhanglwangll.javaeye.com/blog/40032</guid>
      </item>
      <item>
        <title>PUT FIRST THING FIRST</title>
        <author>redfeather</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhanglwangll.javaeye.com">redfeather</a>&nbsp;
          链接：<a href="http://zhanglwangll.javaeye.com/blog/39755" style="color:red;">http://zhanglwangll.javaeye.com/blog/39755</a>&nbsp;
          发表时间: 2006年12月20日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <p>今天本来是这么安排的：</p>
<p>1 上午 看课题的东西，论文 MFC或者别的什么，找找思路，找找感觉</p>
<p>2 下午 了解FF和IE在JS应用方面的不同之处，把原来在IE上开发的界面，做成兼容FF的</p>
<p>但是我的计划又没有完成，&ldquo;又&rdquo;。</p>
<p>这样下去工作效率低下，而且我最最重要的课题丝毫没有进展，太可怕了。</p>
<p>分析不能执行计划原因所在，是不能安排一个具体的工作，只是笼统的下午&times;&times;&times;下午&times;&times;&times;</p>
<p>结果看看着看看那儿，时间都溜掉了，什么都没干成。</p>
<p>最近看的一本书上说，做事情的计划安排大体分为3种：</p>
<p>1 备忘录式 把要做的事情事无巨细都记录下来，一一完成。这样的处理方式比较容易得到成就感，但是缺乏规划。</p>
<p>2 日程表式 对时间的安排有一个整体的认识，统一调配时间。</p>
<p>3 优先考虑重要的事情，不必要的事情少做或者不做，或者先不做。所谓要事第一的原则，保持最终要的事情的时间＆效率。</p>
<p>显然，第三种方式是被推崇的，生活是一种习惯，思维方式也是，我要时时刻刻提醒自己 </p>
<h4><font color="#ff0000">PUT FIRST THING FIRST</font></h4>
<p>&nbsp;</p>
          <br/>
          <span style="color:red;">
            <a href="http://zhanglwangll.javaeye.com/blog/39755#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 20 Dec 2006 16:26:07 +0800</pubDate>
        <link>http://zhanglwangll.javaeye.com/blog/39755</link>
        <guid>http://zhanglwangll.javaeye.com/blog/39755</guid>
      </item>
      <item>
        <title>Javascript的IE和FF兼容性汇编</title>
        <author>redfeather</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhanglwangll.javaeye.com">redfeather</a>&nbsp;
          链接：<a href="http://zhanglwangll.javaeye.com/blog/39723" style="color:red;">http://zhanglwangll.javaeye.com/blog/39723</a>&nbsp;
          发表时间: 2006年12月20日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="content">
<p class="code"><font size="2">以下以&nbsp;IE&nbsp;代替&nbsp;Internet&nbsp;Explorer，以&nbsp;MF&nbsp;代替&nbsp;Mozzila&nbsp;Firefox<br />
<br />
</font>1.&nbsp;document.form.item&nbsp;问题<br />
(1)现有问题：<br />
现有代码中存在许多&nbsp;document.formName.item(&quot;itemName&quot;)&nbsp;这样的语句，不能在&nbsp;MF&nbsp;下运行<br />
(2)解决方法：<br />
改用&nbsp;document.formName.elements[&quot;elementName&quot;]<br />
(3)其它<br />
参见&nbsp;2<br />
<br />
2.&nbsp;集合类对象问题<br />
(1)现有问题：<br />
现有代码中许多集合类对象取用时使用&nbsp;()，IE&nbsp;能接受，MF&nbsp;不能。<br />
(2)解决方法：<br />
改用&nbsp;[]&nbsp;作为下标运算。如：document.forms(&quot;formName&quot;)&nbsp;改为&nbsp;document.forms[&quot;formName&quot;]。<br />
又如：document.getElementsByName(&quot;inputName&quot;)(1)&nbsp;改为&nbsp;document.getElementsByName(&quot;inputName&quot;)[1]<br />
<br />
3.&nbsp;window.event<br />
(1)现有问题：<br />
使用&nbsp;window.event&nbsp;无法在&nbsp;MF&nbsp;上运行<br />
(2)解决方法：<br />
MF&nbsp;的&nbsp;event&nbsp;只能在事件发生的现场使用，此问题暂无法解决。可以这样变通：<br />
原代码(可在IE中运行)：<br />
&lt;!--&nbsp; &lt;input&nbsp;type=&quot;button&quot;&nbsp;name=&quot;someButton&quot;&nbsp;value=&quot;提交&quot;&nbsp;onclick=&quot;javascript:gotoSubmit()&quot;/&gt;&nbsp; --&gt;<br />
...<br />
&lt;script&nbsp;language=&quot;javascript&quot;&gt;<br />
function&nbsp;gotoSubmit()&nbsp;{<br />
...<br />
alert(window.event);&nbsp;//&nbsp;use&nbsp;window.event<br />
...<br />
}<br />
&lt;/script&gt;<br />
<br />
新代码(可在IE和MF中运行)：<br />
&lt;!--&nbsp; &lt;input&nbsp;type=&quot;button&quot;&nbsp;name=&quot;someButton&quot;&nbsp;value=&quot;提交&quot;&nbsp;onclick=&quot;javascript:gotoSubmit(event)&quot;/&gt;&nbsp; --&gt;<br />
...<br />
&lt;script&nbsp;language=&quot;javascript&quot;&gt;<br />
function&nbsp;gotoSubmit(evt)&nbsp;{<br />
evt&nbsp;=&nbsp;evt&nbsp;?&nbsp;evt&nbsp;:&nbsp;(window.event&nbsp;?&nbsp;window.event&nbsp;:&nbsp;null);<br />
...<br />
alert(evt);&nbsp;//&nbsp;use&nbsp;evt<br />
...<br />
}<br />
&lt;/script&gt;<br />
此外，如果新代码中第一行不改，与老代码一样的话(即&nbsp;gotoSubmit&nbsp;调用没有给参数)，则仍然只能在IE中运行，但不会出错。所以，这种方案&nbsp;tpl&nbsp;部分仍与老代码兼容。<br />
<br />
4.&nbsp;HTML&nbsp;对象的&nbsp;id&nbsp;作为对象名的问题<br />
(1)现有问题<br />
在&nbsp;IE&nbsp;中，HTML&nbsp;对象的&nbsp;ID&nbsp;可以作为&nbsp;document&nbsp;的下属对象变量名直接使用。在&nbsp;MF&nbsp;中不能。<br />
(2)解决方法<br />
用&nbsp;getElementById(&quot;idName&quot;)&nbsp;代替&nbsp;idName&nbsp;作为对象变量使用。<br />
<br />
5.&nbsp;用idName字符串取得对象的问题<br />
(1)现有问题<br />
在IE中，利用&nbsp;eval(idName)&nbsp;可以取得&nbsp;id&nbsp;为&nbsp;idName&nbsp;的&nbsp;HTML&nbsp;对象，在MF&nbsp;中不能。<br />
(2)解决方法<br />
用&nbsp;getElementById(idName)&nbsp;代替&nbsp;eval(idName)。<br />
<br />
6.&nbsp;变量名与某&nbsp;HTML&nbsp;对象&nbsp;id&nbsp;相同的问题<br />
(1)现有问题<br />
在&nbsp;MF&nbsp;中，因为对象&nbsp;id&nbsp;不作为&nbsp;HTML&nbsp;对象的名称，所以可以使用与&nbsp;HTML&nbsp;对象&nbsp;id&nbsp;相同的变量名，IE&nbsp;中不能。<br />
(2)解决方法<br />
在声明变量时，一律加上&nbsp;var&nbsp;，以避免歧义，这样在&nbsp;IE&nbsp;中亦可正常运行。<br />
此外，最好不要取与&nbsp;HTML&nbsp;对象&nbsp;id&nbsp;相同的变量名，以减少错误。<br />
(3)其它<br />
参见&nbsp;问题4<br />
<br />
7.&nbsp;event.x&nbsp;与&nbsp;event.y&nbsp;问题<br />
(1)现有问题<br />
在IE&nbsp;中，event&nbsp;对象有&nbsp;x,&nbsp;y&nbsp;属性，MF中没有。<br />
(2)解决方法<br />
在MF中，与event.x&nbsp;等效的是&nbsp;event.pageX。但event.pageX&nbsp;IE中没有。<br />
故采用&nbsp;event.clientX&nbsp;代替&nbsp;event.x。在IE&nbsp;中也有这个变量。<br />
event.clientX&nbsp;与&nbsp;event.pageX&nbsp;有微妙的差别（当整个页面有滚动条的时候），不过大多数时候是等效的。<br />
<br />
如果要完全一样，可以稍麻烦些：<br />
mX&nbsp;=&nbsp;event.x&nbsp;?&nbsp;event.x&nbsp;:&nbsp;event.pageX;<br />
然后用&nbsp;mX&nbsp;代替&nbsp;event.x<br />
(3)其它<br />
event.layerX&nbsp;在&nbsp;IE&nbsp;与&nbsp;MF&nbsp;中都有，具体意义有无差别尚未试验。<br />
<br />
8.&nbsp;关于frame<br />
(1)现有问题<br />
在&nbsp;IE中&nbsp;可以用window.testFrame取得该frame，mf中不行<br />
(2)解决方法<br />
在frame的使用方面mf和ie的最主要的区别是：<br />
如果在frame标签中书写了以下属性：<br />
&lt;frame&nbsp;src=&quot;xx.htm&quot;&nbsp;id=&quot;frameId&quot;&nbsp;name=&quot;frameName&quot;&nbsp;/&gt;<br />
那么ie可以通过id或者name访问这个frame对应的window对象<br />
而mf只可以通过name来访问这个frame对应的window对象<br />
例如如果上述frame标签写在最上层的window里面的htm里面，那么可以这样访问<br />
ie：&nbsp;window.top.frameId或者window.top.frameName来访问这个window对象<br />
mf：&nbsp;只能这样window.top.frameName来访问这个window对象<br />
<br />
另外，在mf和ie中都可以使用window.top.document.getElementById(&quot;frameId&quot;)来访问frame标签<br />
并且可以通过window.top.document.getElementById(&quot;testFrame&quot;).src&nbsp;=&nbsp;&lsquo;xx.htm&rsquo;来切换frame的内容<br />
也都可以通过window.top.frameName.location&nbsp;=&nbsp;&lsquo;xx.htm&rsquo;来切换frame的内容<br />
关于frame和window的描述可以参见bbs的&lsquo;window与frame&rsquo;文章<br />
以及/test/js/test_frame/目录下面的测试<br />
----adun&nbsp;2004.12.09修改<br />
<br />
9.&nbsp;在mf中，自己定义的属性必须getAttribute()取得<br />
<br />
10.在mf中没有&nbsp;parentElement&nbsp;parement.children&nbsp;而用parentNode&nbsp;parentNode.childNodes<br />
childNodes的下标的含义在IE和MF中不同，MF使用DOM规范，childNodes中会插入空白文本节点。<br />
一般可以通过node.getElementsByTagName()来回避这个问题。<br />
当html中节点缺失时，IE和MF对parentNode的解释不同，例如<br />
&lt;!-- &lt;form&gt;<br />
&lt;table&gt;<br />
&lt;input/&gt;<br />
&lt;/table&gt;<br />
&lt;/form&gt; --&gt;<br />
MF中input.parentNode的值为form,&nbsp;而IE中input.parentNode的值为空节点<br />
<br />
MF中节点没有removeNode方法，必须使用如下方法&nbsp;node.parentNode.removeChild(node)<br />
<br />
11.const&nbsp;问题<br />
(1)现有问题:<br />
在&nbsp;IE&nbsp;中不能使用&nbsp;const&nbsp;关键字。如&nbsp;const&nbsp;constVar&nbsp;=&nbsp;32;&nbsp;在IE中这是语法错误。<br />
(2)解决方法:<br />
不使用&nbsp;const&nbsp;，以&nbsp;var&nbsp;代替。<br />
<br />
12.&nbsp;body&nbsp;对象<br />
MF的body在body标签没有被浏览器完全读入之前就存在，而IE则必须在body完全被读入之后才存在<br />
<br />
13.&nbsp;url&nbsp;encoding<br />
在js中如果书写url就直接写&amp;不要写&amp;例如var&nbsp;url&nbsp;=&nbsp;&lsquo;xx.jsp?objectName=xx&amp;objectEvent=xxx&rsquo;;<br />
frm.action&nbsp;=&nbsp;url那么很有可能url不会被正常显示以至于参数没有正确的传到服务器<br />
一般会服务器报错参数没有找到<br />
当然如果是在tpl中例外，因为tpl中符合xml规范，要求&amp;书写为&amp;<br />
一般MF无法识别js中的&amp;<br />
<br />
14.&nbsp;nodeName&nbsp;和&nbsp;tagName&nbsp;问题<br />
(1)现有问题：<br />
在MF中，所有节点均有&nbsp;nodeName&nbsp;值，但&nbsp;textNode&nbsp;没有&nbsp;tagName&nbsp;值。在&nbsp;IE&nbsp;中，nodeName&nbsp;的使用好象<br />
有问题（具体情况没有测试，但我的IE已经死了好几次）。<br />
(2)解决方法：<br />
使用&nbsp;tagName，但应检测其是否为空。<br />
<br />
15.&nbsp;元素属性<br />
IE下&nbsp;input.type属性为只读，但是MF下可以修改 </p>
<p class="code">16. document.getElementsByName() 和 document.all[name] 的问题<br />
&nbsp; (1)现有问题：<br />
&nbsp;&nbsp;&nbsp;&nbsp; 在 IE 中，getElementsByName()、document.all[name] 均不能用来取得 div 元素（是否还有其它不能取的元素还不知道）。</p>
</div>
          <br/>
          <span style="color:red;">
            <a href="http://zhanglwangll.javaeye.com/blog/39723#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 20 Dec 2006 14:13:37 +0800</pubDate>
        <link>http://zhanglwangll.javaeye.com/blog/39723</link>
        <guid>http://zhanglwangll.javaeye.com/blog/39723</guid>
      </item>
      <item>
        <title>FIREFOX与IE模版兼容问题</title>
        <author>redfeather</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://zhanglwangll.javaeye.com">redfeather</a>&nbsp;
          链接：<a href="http://zhanglwangll.javaeye.com/blog/39722" style="color:red;">http://zhanglwangll.javaeye.com/blog/39722</a>&nbsp;
          发表时间: 2006年12月20日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          <div class="postdate">
<p>【转贴】Submitted by <a href="http://www.shanghuo.net/?action=showuser&amp;id=1">上火</a> on 2006, July 28, 3:42 PM. <a href="http://www.shanghuo.net/?cid=5&amp;cname=javascript%E5%AD%A6%E4%B9%A0">javascript学习</a></p>
<div class="content">
<p>对于国内设计师来说IE可能是我们最为熟悉的浏览器了,至少需求是最多的.到目前为止除了国外有客户会 提出浏览器的问题,在国内我还很少碰到有人提出浏览器兼容问题.因为大家似乎都默认了IE的各项规范比如说CSS的规范.尽管他的CSS规范可能有背与 W3C标准.说到W3C就不可以不提FIREFOX,FIREFOX对W3C标准支持方面是最好的,这也是为什么FIREFOX获得巨大成功的一个重要原 因.</p>
<p>其实我个人来说一般都是IE下面完成JOOMLA模版的设计,几乎不用FIREFOX直到有一天在一个新加坡的项目中客户跟我说 你的模版在FIREFOX里面看的变形了,这时候我才意识到在我们设计模版的时候必须要考虑而且也是非常重要的问题--模版兼容问题,兼容IE与 FIREFOX浏览器.</p>
<p>说到兼容浏览器问题,首先要说一下,IE/FIREFOX两者的区别与联系.</p>
<p>IE (Internet Explore)微软公司开发的，到目前为止全球8成电脑都安装的主流浏览器,功能最强,内容也最为丰富,最为流行,但也为此付出了在安全方面的巨大代 价,不停的升级,不停的补丁,但似乎永远都有数不完的安全隐患,这可能是现在不少人转向FIREFOX的一个重要原因.但我个人认为,功能与内容的丰富必 然会增加N多的安全隐患,这是无法避免的.</p>
<p>FIREFOX则是由Mozilla基金会支援的一个开源浏览器.由于在内核方面完全不同于IE.因此解决了很多IE的安全隐患,以及克服了一些微软的软肋.最近的新版本刚发布,一周内下载量达到250万,就显示了作为对微软的补充替代产品,FIREFOX确实不错.</p>
<p>下面我们看一下JOOMLA的模版设计,一般来说JOOMLA的模版还是基于DIV+CSS布局的,但这种布局中如果你采用一些非兼容的处理手段, 很有可能造成整个模版在FIREFOX下面的畸变.一般来说IE和FIREFOX都有着自己的一套CSS标准,而目前国内用户基本还是对IE比较熟悉,对 与FIREFOX包括W3C标准认识还不是很清楚.</p>
<p>下面列出一些简单的关于IE和FIREFOX在解析CSS方面的区别 </p>
<div class="blog-content">
<ol>
    <li><strong>对高度的解析</strong>
    <p>IE：将根据内容的高度变化，包括未定义高度的图片内容，即使定义了高度，当内容超过高度时，将使用实际高度</p>
    <p>Firefox：没有定义高度时，如果内容中包括了图片内容，MF的高度解析是根据印刷标准，这样就会造成和实际内容高度不符合的情况；当定义了高度，但是内容超过高度时，内容会超出定义的高度，但是区域使用的样式不会变化，造成样式错位。</p>
    <p><strong>结论：</strong>大家在可以确定内容高度的情况下最好定义高度，如果真的没有办法定义高度，最好不用使用边框样式，否则样式肯定会出现混乱！</p>
    </li>
    <li><strong>img对象alt和title的解析</strong>
    <p>alt：当照片不存在或者load错误时的提示；</p>
    <p>title：照片的tip说明。</p>
    <p>在IE中如果没有定义title，alt也可以作为img的tip使用，但是在MF中，两者完全按照标准中的定义使用</p>
    <p><strong>结论：</strong>大家在定义img对象时，最后将alt和title对象都写全，保证在各种浏览器中都能正常使用</p>
    </li>
    <li>
    <p><strong>其他的细节差别</strong></p>
    <p>当你在写css的时候，特别是用float: left（或right）排列一窜图片时，会发现在firefox里面正常而IE里面有问题。无论你用margin:0,还是border: 0来约束，都无济于事。</p>
    <p>其实这里还有另外一个问题，就是IE对于空格的处理，firefox是忽略的而IE对于块与块之间的空格是处理的。也就是说一个div结束后要紧接着一个div写，中间不要有回车或者空格。不然也许会有问题，比如3px的偏差，而且这个原因很难发现。</p>
    <p>非常不走运的是我又碰到了这样的问题，多个img标签连着，然后定义的float: left，希望这些图片可以连起来。但是结果在firefox里面正常而IE里面显示的每个img都相隔了3px。我把标签之间的空格都删除都没有作用。</p>
    <p>后来的解决方法是在img外面套li，并且对li定义margin: 0，这样就解决了IE和firefox的显示偏差。IE对于一些模型的解释会产生很多错误问题，只有多多尝试才能发现原因。</p>
    </li>
</ol>
</div>
<p>这只是一些简单的区别,在做布局和CSS设计时候可以综合考虑,但最为有效与简单的解决兼容问题还是用TABLE表格,表格在兼容性方面有着不错的表现.</p>
<p>另外在模版的JS设计的时候也需要考虑两者对代码的兼容,以下是对IE与FIREFOX中JS的一些测试:</p>
<p>以下以 IE 代替 Internet Explorer，以 MF 代替 Mozilla Firefox</p>
<p>1. document.form.item 问题<br />
&nbsp;&nbsp;&nbsp; (1)现有问题：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 现有代码中存在许多 document.formName.item(&quot;itemName&quot;) 这样的语句，不能<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在 MF 下运行<br />
&nbsp;&nbsp;&nbsp; (2)解决方法：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 改用 document.formName.elements[&quot;elementName&quot;]<br />
&nbsp;&nbsp;&nbsp; (3)其它<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 参见 2</p>
<p>2. 集合类对象问题<br />
&nbsp;&nbsp;&nbsp; (1)现有问题：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 现有代码中许多集合类对象取用时使用 ()，IE 能接受，MF 不能。<br />
&nbsp;&nbsp;&nbsp; (2)解决方法：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 改用 [] 作为下标运算。如：document.forms(&quot;formName&quot;) 改为<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.forms[&quot;formName&quot;]。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 又如：document.getElementsByName(&quot;inputName&quot;)(1) 改为<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.getElementsByName(&quot;inputName&quot;)[1]<br />
&nbsp;&nbsp;&nbsp; (3)其它</p>
<p>3. window.event<br />
&nbsp;&nbsp;&nbsp; (1)现有问题：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 使用 window.event 无法在 MF 上运行<br />
&nbsp;&nbsp;&nbsp; (2)解决方法：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MF 的 event 只能在事件发生的现场使用，此问题暂无法解决。可以这样变通：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 原代码(可在IE中运行)：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- &nbsp;&nbsp;&nbsp;&nbsp; &lt;input type=&quot;button&quot; name=&quot;someButton&quot; value=&quot;提交&quot;&nbsp; --&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; onclick=&quot;javascript:gotoSubmit()&quot;/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;script language=&quot;javascript&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function gotoSubmit() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(window.event);&nbsp;&nbsp;&nbsp; // use window.event<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/script&gt;</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 新代码(可在IE和MF中运行)：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- &nbsp;&nbsp;&nbsp;&nbsp; &lt;input type=&quot;button&quot; name=&quot;someButton&quot; value=&quot;提交&quot;&nbsp; --&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; onclick=&quot;javascript:gotoSubmit(event)&quot;/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;script language=&quot;javascript&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function gotoSubmit(evt) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; evt = evt ? evt : (window.event ? window.event : null);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; alert(evt);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // use evt<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/script&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 此外，如果新代码中第一行不改，与老代码一样的话(即 gotoSubmit 调用没有给<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 参数)，则仍然只能在IE中运行，但不会出错。所以，这种方案 tpl 部分仍与老<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 代码兼容。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ///////////////////////////////////////////////////////////////////////<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 以下来自网友 llihua&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //事件处理函数<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; function a(evt) { //FireFox<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; evt = evt? evt: window.event; //IE<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var srcElem = (evt.target)? evt.target: evt.srcElement;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //事件处理...<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在连接事件处理函数的时候，可以用Inline HTML方式，也可以用Event<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; property方式定义。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1、使用Inline HTML方式，如：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;!-- &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input type=&quot;radio&quot; name=&quot;radio&quot; value=&quot;1&quot;&nbsp;&nbsp; --&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; onclick=&quot;javascript:a(event)&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 注意：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (1)javascript不能省；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (2)实参要使用event，形参使用什么都可以(如evt、event等)；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2、使用Event property方式绑定事件处理函数，如：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; document.form2.radio[0].onclick = a;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // 以上来自网友 llihua&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ///////////////////////////////////////////////////////////////////////</p>
<p><br />
4. HTML 对象的 id 作为对象名的问题<br />
&nbsp;&nbsp;&nbsp; (1)现有问题<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在 IE 中，HTML 对象的 ID 可以作为 document 的下属对象变量名直接使用。在<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MF 中不能。<br />
&nbsp;&nbsp;&nbsp; (2)解决方法<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 用 getElementById(&quot;idName&quot;) 代替 idName 作为对象变量使用。</p>
<p>5. 用idName字符串取得对象的问题<br />
&nbsp;&nbsp;&nbsp; (1)现有问题<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在IE中，利用 eval(idName) 可以取得 id 为 idName 的 HTML 对象，在MF 中不<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 能。<br />
&nbsp;&nbsp;&nbsp; (2)解决方法<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 用 getElementById(idName) 代替 eval(idName)。</p>
<p>6. 变量名与某 HTML 对象 id 相同的问题<br />
&nbsp;&nbsp;&nbsp; (1)现有问题<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在 MF 中，因为对象 id 不作为 HTML 对象的名称，所以可以使用与 HTML 对象<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; id 相同的变量名，IE 中不能。<br />
&nbsp;&nbsp;&nbsp; (2)解决方法<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在声明变量时，一律加上 var ，以避免歧义，这样在 IE 中亦可正常运行。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 此外，最好不要取与 HTML 对象 id 相同的变量名，以减少错误。<br />
&nbsp;&nbsp;&nbsp; (3)其它<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 参见 问题4</p>
<p>7. event.x 与 event.y 问题<br />
&nbsp;&nbsp;&nbsp; (1)现有问题<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在IE 中，event 对象有 x, y 属性，MF中没有。<br />
&nbsp;&nbsp;&nbsp; (2)解决方法<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在MF中，与event.x 等效的是 event.pageX。但event.pageX IE中没有。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 故采用 event.clientX 代替 event.x。在IE 中也有这个变量。<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; event.clientX 与 event.pageX 有微妙的差别（当整个页面有滚动条的时候），<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 不过大多数时候是等效的。</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果要完全一样，可以稍麻烦些：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mX = event.x ? event.x : event.pageX;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 然后用 mX 代替 event.x<br />
&nbsp;&nbsp;&nbsp; (3)其它<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; event.layerX 在 IE 与 MF 中都有，具体意义有无差别尚未试验。</p>
<p><br />
8. 关于frame<br />
&nbsp;&nbsp; (1)现有问题<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在 IE中 可以用window.testFrame取得该frame，mf中不行<br />
&nbsp;&nbsp; (2)解决方法<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在frame的使用方面mf和ie的最主要的区别是：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 如果在frame标签中书写了以下属性：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;frame src=&quot;xx.htm&quot; id=&quot;frameId&quot; name=&quot;frameName&quot; /&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 那么ie可以通过id或者name访问这个frame对应的window对象<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 而mf只可以通过name来访问这个frame对应的window对象<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 例如如果上述frame标签写在最上层的window里面的htm里面，那么可以这样访问<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ie： window.top.frameId或者window.top.frameName来访问这个window对象<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; mf： 只能这样window.top.frameName来访问这个window对象</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 另外，在mf和ie中都可以使用<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; window.top.document.getElementById(&quot;frameId&quot;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 来访问<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; frame标签<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 并且可以通过<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; window.top.document.getElementById(&quot;testFrame&quot;).src = 'xx.htm'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 来切换frame的内容<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 也都可以通过window.top.frameName.location = 'xx.htm'来切换frame的内容<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 关于frame和window的描述可以参见bbs的&lsquo;window与frame&rsquo;文章<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 以及/test/js/test_frame/目录下面的测试<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ----adun 2004.12.09修改</p>
<p>9. 在mf中，自己定义的属性必须getAttribute()取得<br />
10.在mf中没有&nbsp; parentElement parement.children&nbsp; 而用<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; parentNode parentNode.childNodes<br />
&nbsp;&nbsp; childNodes的下标的含义在IE和MF中不同，MF使用DOM规范，childNodes中会插入空白<br />
&nbsp;&nbsp; 文本节点。<br />
&nbsp; 一般可以通过node.getElementsByTagName()来回避这个问题。<br />
&nbsp;&nbsp; 当html中节点缺失时，IE和MF对parentNode的解释不同，例如<br />
&lt;!-- &nbsp; &lt;form&gt;<br />
&nbsp;&nbsp; &lt;table&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;input/&gt;<br />
&nbsp;&nbsp; &lt;/table&gt;<br />
&nbsp;&nbsp; &lt;/form&gt;&nbsp; --&gt;<br />
&nbsp;&nbsp; MF中input.parentNode的值为form, 而IE中input.parentNode的值为空节点<br />
&nbsp;&nbsp; MF中节点没有removeNode方法，必须使用如下方法<br />
&nbsp;&nbsp; node.parentNode.removeChild(node)</p>
<p>11.const 问题<br />
&nbsp; (1)现有问题:<br />
&nbsp;&nbsp;&nbsp;&nbsp; 在 IE 中不能使用 const 关键字。如 const constVar = 32;<br />
&nbsp;&nbsp;&nbsp;&nbsp; 在IE中这是语法错误。<br />
&nbsp; (2)解决方法:<br />
&nbsp;&nbsp;&nbsp;&nbsp; 不使用 const ，以 var 代替。</p>
<p>12. body 对象<br />
&nbsp;&nbsp; MF的body在body标签没有被浏览器完全读入之前就存在，而IE则必须在body完全被读入<br />
&nbsp;&nbsp; 之后才存在</p>
<p>13. url encoding<br />
&nbsp;&nbsp;&nbsp; 在js中如果书写url就直接写&amp;不要写&amp;例如<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var url = 'xx.jsp?objectName=xx&amp;objectEvent=xxx';<br />
&nbsp;&nbsp;&nbsp; frm.action = url那么很有可能url不会被正常显示以至于参数没有正确的传到服务器<br />
&nbsp;&nbsp;&nbsp; 一般会服务器报错参数没有找到<br />
&nbsp;&nbsp;&nbsp; 当然如果是在tpl中例外，因为tpl中符合xml规范，要求&amp;书写为&amp;<br />
&nbsp;&nbsp;&nbsp; 一般MF无法识别js中的&amp;</p>
<p><br />
14. nodeName 和 tagName 问题<br />
&nbsp; (1)现有问题：<br />
&nbsp;&nbsp;&nbsp;&nbsp; 在MF中，所有节点均有 nodeName 值，但 textNode 没有 tagName 值。在 IE 中，<br />
&nbsp;&nbsp;&nbsp;&nbsp; nodeName 的使用好象<br />
&nbsp;&nbsp;&nbsp;&nbsp; 有问题（具体情况没有测试，但我的IE已经死了好几次）。<br />
&nbsp; (2)解决方法：<br />
&nbsp;&nbsp;&nbsp;&nbsp; 使用 tagName，但应检测其是否为空。</p>
<p>15. 元素属性<br />
&nbsp;&nbsp; IE下 input.type属性为只读，但是MF下可以修改</p>
<p><br />
16. document.getElementsByName() 和 document.all[name] 的问题<br />
&nbsp; (1)现有问题：<br />
&nbsp;&nbsp;&nbsp;&nbsp; 在 IE 中，getElementsByName()、document.all[name] 均不能用来取得 div 元素<br />
&nbsp;&nbsp;&nbsp;&nbsp; （是否还有其它不能取的元素还不知道）。</p>
<p>17. DOM 数据岛的问题<br />
&nbsp; (1)现有问题<br />
&nbsp;&nbsp;&nbsp;&nbsp; 在IE中, &lt;xml&gt;标签具有特殊意义, 可以内含XML DOM, 并能实现与HTML组件的数据<br />
&nbsp;&nbsp;&nbsp;&nbsp; 绑定. 在MF中,&lt;xml&gt;则仅仅是一个未知的标记而已.<br />
&nbsp;&nbsp;&nbsp;&nbsp; 另外, 对 IE 来说, &lt;xml&gt;实际意味着这里是一个ActiveX对象, 但它却挂在HTML本<br />
&nbsp;&nbsp;&nbsp;&nbsp; 身的DOM树下作为一个节点, 因而会对DOM树的遍历造成严重影响.<br />
&nbsp; (2)解决方法<br />
&nbsp;&nbsp;&nbsp;&nbsp; IE的数据绑定机制是可以用JS来模拟的, 但是太麻烦, 建议不使用数据绑定机制或者<br />
&nbsp;&nbsp;&nbsp;&nbsp; 寻找实现这种模拟的库来做. 我们只讨论如何实现DOM的兼容.<br />
&nbsp;&nbsp;&nbsp;&nbsp; 在MF中无论已知的HTML标记还是其它符合XML规范的标记, 都是用统一的DOM树来处理<br />
&nbsp;&nbsp;&nbsp;&nbsp; 的, 因此, MF事实上完全可以使用DOM数据岛, 但与IE小小的不同在于: 在IE中&lt;xml&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; 是个 DOM document, 而在MF只是 DOM node. 这个差别通常不足为患.<br />
&nbsp;&nbsp;&nbsp;&nbsp; 但是有一个小小的细节, 为了兼容HTML相当随意的语法, MF无法识别简写的空标记.<br />
&nbsp;&nbsp;&nbsp;&nbsp; 如: &lt;xml id=&quot;xx&quot;&gt;&lt;book&gt;&lt;title&gt;xxxx&lt;/title&gt;&lt;content/&gt;&lt;index/&gt;&lt;/book&gt;&lt;/xml&gt;,<br />
&nbsp;&nbsp;&nbsp;&nbsp; 这其中&lt;content/&gt;和&lt;index/&gt;是简写形式的, 会使MF无法识别, 应当写成:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;content&gt;&lt;/content&gt;&lt;index&gt;&lt;/index&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp; 不过, 我怀疑如果用XHTML, 可能就没有这种问题. 但我还没有试过.<br />
&nbsp;&nbsp;&nbsp;&nbsp; 对于IE中&lt;xml&gt;干扰HTML的DOM结构问题, 我现在的方法是处理完毕后把它从HTML的<br />
&nbsp;&nbsp;&nbsp;&nbsp; DOM中删除. 不知道还有没有更好的解.</p>
</div>
</div>
          <br/>
          <span style="color:red;">
            <a href="http://zhanglwangll.javaeye.com/blog/39722#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 20 Dec 2006 14:10:53 +0800</pubDate>
        <link>http://zhanglwangll.javaeye.com/blog/39722</link>
        <guid>http://zhanglwangll.javaeye.com/blog/39722</guid>
      </item>
  </channel>
</rss>