<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?xml-stylesheet type="text/xsl" href="css/rss.xslt"?>
<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>子寒博客—关注互联网，WEB前端技术和WEB设计</title><link>http://zihan.cn/</link><description>记录工作，感悟生活，品味人生。</description><generator>RainbowSoft Studio Z-Blog 1.8 Arwen Build 90619</generator><language>zh-CN</language><copyright>Copyright 2005-2010 ZiHan.cn. Some Rights Reserved.</copyright><pubDate>Thu, 26 Aug 2010 13:45:16 +0800</pubDate><item><title>真实的中国互联网（草根VS精英）</title><author>a@b.com (zihan)</author><link>http://zihan.cn/post/60.htm</link><pubDate>Thu, 26 Aug 2010 13:28:41 +0800</pubDate><guid>http://zihan.cn/post/60.htm</guid><description><![CDATA[<div class="content"><p>子寒：发人深省的一篇文章，给正在从事产品策划方面工作的我很多感触。这篇文章使我想起了年初看过李杰写的<a target="_blank" href="http://www.jaylee.cn/their-internet/">《过年回家有感：他们的互联网》</a>一文。有异曲同工之妙。</p><blockquote><p>刺客：这是篇转载的文章，作者是申音，《创业家》杂志的主编，里面的内容，相信很多正在创业和已经创业的人读后会有很多感触。看不懂的站长，就去想想身边的那些大流量网站的发家史和他们现今的一些幕后行为。这样的事情一直到今天还在身边不停的上演，一切，都来源于生活。包括，你的事业大小。</p><p>没必要去标榜你很潮，也没必要标榜你走在一切的前沿，这个社会和几千年前一样，和国外也一样，最终大家评判你的还是你的拳头大小。</p></blockquote><p>请看正文&mdash;&mdash;</p><p>我有两个朋友。</p><p>L的公司在上海，大半时间跑广东。他是华南某所不太知名的大学毕业的，小眼睛质朴男，多年以前还是个文学青年。哥们做手机网游的，我见他使过好几款手机， 但最贵的一个也不过1千多块钱。比起什么Web2.0、移动互联网的概念，他更关心珠三角的几千万农民工和城市边缘的大学生&ldquo;蚁族&rdquo;，怎么关心？在东莞的 夜宵摊上跟他们拼啤酒，在富士康厂区外网吧里刷夜，跟靠做他们生意开上宝马的便利店老板扯淡&hellip;&hellip;</p><p>W猫在北京中关村。他从小就是个脑袋很大眼睛发亮的天才少年，数理化成绩很好，逻辑思维超强，英文和中文一般流利。在首都某著名大学毕业后，W 直接去美国名校拿了硕士，接着回国创业。我一直觉得，他是硅谷Geek们的中国版。诸如iPad之类的新技术玩意，我总能第一时间从他那儿找到。他也是国内把玩Facebook、Twitter、Groupon、Foursqure的人。啥叫互联网的未来，W做的网站就代表互联网的未来。</p><p>W比L拥有更多的掌声和名声。但遗憾的是，他做了好几个连投资人都觉得很酷的网站，却始终没有挣到大钱。原因不外如下：要么是起个大早，却被一大堆抄近道的同行给围追堵截；要么因为资金接济不上，只能让一个更有资源实力的大公司直接吃掉，还有的不知道触了哪根高压线被主管部门直接暂停。</p><p>L的生意是实实在在每天都能数着钱的，他都已经可以打高尔夫了，但他并不想告诉无关人他挣到钱了。说了也没人信，几十万月薪不到2000的打工仔拿着 300块钱买的山寨机玩L公司做的游戏，每月给他贡献过百元的ARPU值，换句话说，他们收入的十来分之一都心甘情愿地送给L了。我有时也想不通，W针对的客户明明是北京、上海这些大城市中最有消费能力的精英。为什么他们舍得花钱买最贵的手机，换最新的笔记本电脑，下最好的馆子，在网上却什么都要免费。</p><p>圈里公认，只要是W做的事情必定引来围观。同行也好，媒体人、营销人也罢，口口相传，网站流量和用户量几乎是一条直线往上蹿。但奇怪的是，过了没多久就停止上升势头，开始跟中老年同志的心脏一样来回震荡。我也问过L，他的这些草根用户没几个有自己的电脑，更谈不上3G，究竟是怎么发掘的？L笑笑说，网吧都不是最有效的渠道。厂区周边有很多便利店，工人一下班就聚到哪儿。老板提供一台电脑，里面装了各种手机用的游戏、MP3、电影，再备一本类似早年K 歌房里的&ldquo;点歌簿&rdquo;。不用上网，拿根USB数据线，想要什么下什么。还有更方便的，用手推车直接送到宿舍门口。</p><p>有次跟L吃饭，他提问我：如果一款游戏要打入45万富士康工人的市场，该请哪位代言人合适？我先猜周杰伦，摇头，丫目标受众是城市，又猜春哥也不对，她只杀伤学生和少妇，怒了，决定猜当红的凤娇，还是被鄙视！正确答案是凤凰传奇，有百度歌手榜单为证。备选是慕容晓晓。完全超出我知识范围，还好我没猜韩寒。</p><p>过去W单纯地以为凭技术就能改变社会，现在他知道你可以不过问政治，但政治会来过问你。不过，要让一个海归精英学会怎么跑门子疏通关系确实有点臊。 L曾经愤青过，但如今很务实，好的商人都是知道怎么看《新闻联播》的。他挺关心运营商的人事变动和扫黄整顿，还搞过几次工友联谊会，虽然目的是为了推广他的游戏。前一段富士康工人&ldquo;12连跳&rdquo;，他很严肃地跟我说，这事他们有责任。我吓一跳。L讲，那些一想不开就跳楼的年轻人正是他的衣食父母。一部手机通常就是这些工人唯一的娱乐设备，与厂外世界交流的唯一媒介。他们有责任让工人们更快乐。</p><p>我所认识的投资人都对W评价很高，但却更爽快给L投钱。因为他们的心里也明镜似的：在中国，做精英的只能赚吆喝，做草根的才能赚着钱。腾讯、百度不就是最好的例子嘛。</p><p>上海那位梳分头打摩丝的笑星说过一句经典：我是喝咖啡的，北方那两位是吃大蒜的。咖啡是舶来品，感觉很洋气，吃大蒜却有益身心。今年炒大蒜的都挣了很多钱，没听说谁倒腾咖啡挣了钱。中国的互联网好像也是一样？</p><p>我曾经突发奇想，如果把W和L对调位置，情况会不一样吗？他们会更理解各自商业的长短吗？后来想想觉得这事不太可能。</p><p>W所追求的互联网，其实是一个&ldquo;美式的互联网&rdquo;。在美国，信息革命是从上个世纪60年代开始的，从1950后到1990后都是&ldquo;数字化的一代&rdquo;。他们之间并没有太大的&ldquo;数字鸿沟&rdquo;，他们的生意与生活，工作与娱乐都与互联网分不开。这也是为什么80后的扎克伯格能够和50后的乔布斯、60后的贝索斯、 70后的佩奇同台竞技的原因。</p><p>同时，美国的社会结构是一颗&ldquo;橄榄&rdquo;，没有那么大的贫富差距、地区差异、城乡之别，所以，美国的互联网可以说是&ldquo;全民的互联网&rdquo;。</p><p>但当下中国的社会结构，原本我们以为它会是一座&ldquo;金字塔&rdquo;，但越来越变成一颗&ldquo;图钉&rdquo;。W和L一个站在削尖的头上，一个站在遥远的钉帽上。中国没有一个所谓 &ldquo;全民的互联网&rdquo;，中国的互联网是人为割裂的。它既存在于精英的Think笔记本上，也存在于草根的MTK山寨机中。我们的精英也许和美国同步，草根却与越南同步。</p><p>事实上，中国的&ldquo;数字化一代&rdquo;只存在于北上广等一些大城市，20-40岁之间的几千万中产阶级。剩下的几亿中国互联网用户归根结底都只是QQ用户。互联网改变不了这个现状，能改变它的也许需要更宏大的社会变革和经济变革？</p><p>我相信，L看穿了所谓&ldquo;中国的互联网&rdquo;的本质。哪些精英们的欲望从来不缺乏满足的渠道，太多的企业在追逐宠坏其实有限的一群客户。相反，有一大批 &ldquo;数字化贫民&rdquo;却没有办法利用互联网改变自己的命运，没有条件通过网络让自己的生活质量飞升，只能沉醉于廉价的虚拟娱乐中。L的商业很符合本土国情，很和谐社会，但他能够走出国门吗？</p><p>我一直相信，终有一天，W能做点&ldquo;代表先进互联网&rdquo;的事情，让美国人也能跟着咱们屁股后面学。可现实的磨难会不会打消他的意志呢？</p><p>按照哲学家柏拉图的&ldquo;洞穴&rdquo;理论，每个人从出生开始就呆在自己挖的一个洞穴里，我们所见的世界只不过是被阳光抛到洞穴墙壁上的影像，而我们这些洞穴的居民却把它当作是真实的世界，因为我们没有见到过其他的东西。而真实的世界却是在洞穴之外，在有太阳的地方。</p><p>不管看这个BLOG的各位精英们是否承认，我们和某些人&mdash;&mdash;一群数量比我们大得多的人（中国的农民工、刚毕业的大学生等等，大概3亿人），完全生活在两个不同的世界。如果能关注那一群人，还会有很多机会。但很有可能，我们永远都走不出自己呆的洞穴。</p></div>]]></description><category>它山之石</category><comments>http://zihan.cn/post/60.htm#comment</comments><wfw:comment>http://zihan.cn/</wfw:comment><wfw:commentRss>http://zihan.cn/feed.asp?cmt=60</wfw:commentRss><trackback:ping>http://zihan.cn/cmd.asp?act=tb&amp;id=60&amp;key=790b35b6</trackback:ping></item><item><title>php.ini register_globals must is Off!错误</title><author>a@b.com (zihan)</author><link>http://zihan.cn/post/58.htm</link><pubDate>Fri, 02 Jul 2010 16:33:43 +0800</pubDate><guid>http://zihan.cn/post/58.htm</guid><description><![CDATA[<p>新服务器在安装php程序的时候出现了php.ini register_globals must is Off!这个错误。在网上查找后解决了。</p><p>解决方法：将系统c盘windows目录下和php配置文件里的php.ini文件里register_globals=on改成register_globals改成off，重新启动IIS（我的服务器是win2003系统，PHP是用IIS来部署的。），问题解决。</p>]]></description><category>前端开发</category><comments>http://zihan.cn/post/58.htm#comment</comments><wfw:comment>http://zihan.cn/</wfw:comment><wfw:commentRss>http://zihan.cn/feed.asp?cmt=58</wfw:commentRss><trackback:ping>http://zihan.cn/cmd.asp?act=tb&amp;id=58&amp;key=49ba306d</trackback:ping></item><item><title>wordpress搬迁注意的两个问题</title><author>a@b.com (zihan)</author><link>http://zihan.cn/post/57.htm</link><pubDate>Thu, 01 Jul 2010 16:18:54 +0800</pubDate><guid>http://zihan.cn/post/57.htm</guid><description><![CDATA[<p>本周升级云服务器，系统资源大大增强。在帮<a target="_blank" href="http://bai80.com">修远兮</a>搬迁wordpress的时候，出现了两个问题。两个服务器都是采用windows2003系统，数据库和程序文件一并搬迁。</p><p>1.服务器用phpmyadmin管理，在导入数据库的时候，其他站点的数据库都能列出表。唯有WP的列不出来。</p><p>原因：未知。</p><p>解决办法：新建一个数据库，将原来备份的sql文件导入新数据库即可。</p><p>2.导入数据库后，部分php文件出现如下错误：Warning: Cannot modify header information - headers already sent by (output started at /bai80.com/wp-config.php:1) in /bai80.com/wp-includes/pluggable.php on line 569</p><p>原因：编码BUG。<br /><br />解决办法：找到<span style="color: rgb(255, 0, 0);">wp-config.php</span>文件，将文件下载到本地，用记事本打开，直接点击另存为，然后在编码选项那里选择<span style="color: rgb(255, 0, 0);">ANSI</span>，保存后再上传到空间覆盖之前的文件，刷新后，问题解决。</p>]]></description><category>前端开发</category><comments>http://zihan.cn/post/57.htm#comment</comments><wfw:comment>http://zihan.cn/</wfw:comment><wfw:commentRss>http://zihan.cn/feed.asp?cmt=57</wfw:commentRss><trackback:ping>http://zihan.cn/cmd.asp?act=tb&amp;id=57&amp;key=021c765f</trackback:ping></item><item><title>职场发达的18条黄金定律</title><author>a@b.com (zihan)</author><link>http://zihan.cn/post/55.htm</link><pubDate>Thu, 15 Apr 2010 10:15:52 +0800</pubDate><guid>http://zihan.cn/post/55.htm</guid><description><![CDATA[<p>办公室虽然只是一个小环境，却是一个大的生态场，足以让你窥一孔而知全豹，洞明世事，参透人情。</p><p>　　升迁定律：仕入官场，每升一级，人情味便减少一分。</p><p>　　升值定律：出口转内销，连舆论都是如此。</p><p>　　游戏定律：无论你保龄球打得多&ldquo;菜&rdquo;，每次玩至少都会有一两次全中，令你满意高兴得下次再来。</p><p>　　价值定律：未有想有的时候价值最高，一旦拥有开始贬值，拥有越多越不值钱。</p><p>　　人生定律：拼命想得到的，都不是最需要的。</p><p>　　旅游定律：没有比记忆中的风景再美好的了，所以不要旧地重游。</p><p>　　金钱定律：在一切人手中，但不是一切。</p><p>　　财物定律：支票总是姗姗来迟，而帐单总是提前到达。</p><p>　　备份定律：学习用左手剪指甲，因为你的右手未必永远管用。</p><p>　　为人定律：办事要&ldquo;精&rdquo;，而非卖力。</p><p>　　会议定律：所有重要决策，都将会在结束或午餐前最后五分钟完成。</p><p>　　思维定律：美好存在于想象中，太美好的东西都不是真的。</p><p>　　控制定律：最容易控制的，往往比最难控制的还难控制。</p><p>　　危难定律：总是问题越复杂，期限越短。</p><p>　　合作定律：一个人花一小时可以做的东西，两个人做至少得花两小时。</p><p>　　组合定律：不管干什么，总是有你希望的人和与你对立的人和你在一起。</p><p>　　物种定律：绵羊的世界必会招致狼管。</p><p>　　坏事定律：关键时刻，每个主管都会杀鸡取卵。</p>]]></description><category>它山之石</category><comments>http://zihan.cn/post/55.htm#comment</comments><wfw:comment>http://zihan.cn/</wfw:comment><wfw:commentRss>http://zihan.cn/feed.asp?cmt=55</wfw:commentRss><trackback:ping>http://zihan.cn/cmd.asp?act=tb&amp;id=55&amp;key=e07cbfc3</trackback:ping></item><item><title>一生只做一件事</title><author>a@b.com (zihan)</author><link>http://zihan.cn/post/54.htm</link><pubDate>Thu, 08 Apr 2010 13:44:49 +0800</pubDate><guid>http://zihan.cn/post/54.htm</guid><description><![CDATA[<p>导语：人这一生，只能专注的做一件事，做精做好。好耶亦是如此，只专注于互联网广告，希望为广告主、媒体带来最优质的服务。<br /><br />从前，有潘记和张记两家豆腐店<br />潘记豆腐结实，口感好，给的量大，光顾的人特别多<br />张记豆腐软，给的少，汤汁又多，门前不免有些冷清<br />曾有好心人向张记老板提议，让老板学做潘记豆腐<br />老板只是微微一笑，并没有采纳<br />且建议好心人，两个月以后再来光顾张记<br />奇怪的现象出现在一个多月以后<br />张记的门前居然真的排起了长队<br />是张记改做了潘记的豆腐吗？<br />不是，张记的豆腐依然是稀稀的汤汁，和以前没有变化<br />这是为什么呢？<br />原来<br />张记和潘记的老板是师兄弟<br />但师傅并没有传授相同的技能给到两兄弟<br />潘记负责做豆腐<br />张记负责做豆腐汤<br />张记比不上潘记的豆腐<br />同样<br />潘记也比不上张记用几种骨肉、多种配料，经12个小时熬制出的豆腐汤<br />众口难调，每个人的口味都不一样，任何东西都会吃厌<br />人们吃厌了潘记的豆腐<br />就过来喝张记的豆腐汤<br />两兄弟的生意互不影响<br />人这一生<br />做精一件事不容易<br />样样精的结果必然是样样差<br />坚守自己最擅长的事情<br />认真、专心的做好<br />这便是成功</p>]]></description><category>它山之石</category><comments>http://zihan.cn/post/54.htm#comment</comments><wfw:comment>http://zihan.cn/</wfw:comment><wfw:commentRss>http://zihan.cn/feed.asp?cmt=54</wfw:commentRss><trackback:ping>http://zihan.cn/cmd.asp?act=tb&amp;id=54&amp;key=ff5964fa</trackback:ping></item><item><title>成大事必须依靠的5种人</title><author>a@b.com (zihan)</author><link>http://zihan.cn/post/53.htm</link><pubDate>Wed, 31 Mar 2010 12:13:26 +0800</pubDate><guid>http://zihan.cn/post/53.htm</guid><description><![CDATA[<p><img title="" alt="" src="../../../upload/201003311221245628.jpg" onload="ResizeImage(this,0)" /></p><p><img title="" alt="" src="../../../upload/201003311221491582.jpg" onload="ResizeImage(this,0)" /></p><p><img title="" alt="" src="../../../upload/201003311222256345.jpg" onload="ResizeImage(this,0)" /></p><p><img title="" alt="" src="../../../upload/201003311222498243.jpg" onload="ResizeImage(this,0)" /></p><p><img title="" alt="" src="../../../upload/201003311223176508.jpg" onload="ResizeImage(this,0)" /></p><p><img title="" alt="" src="../../../upload/201003311223434436.jpg" onload="ResizeImage(this,0)" /></p>]]></description><category>随笔感悟</category><comments>http://zihan.cn/post/53.htm#comment</comments><wfw:comment>http://zihan.cn/</wfw:comment><wfw:commentRss>http://zihan.cn/feed.asp?cmt=53</wfw:commentRss><trackback:ping>http://zihan.cn/cmd.asp?act=tb&amp;id=53&amp;key=f887d08a</trackback:ping></item><item><title>web制作中如何保存文字类型GIF图片</title><author>a@b.com (zihan)</author><link>http://zihan.cn/post/52.htm</link><pubDate>Sun, 07 Mar 2010 12:49:36 +0800</pubDate><guid>http://zihan.cn/post/52.htm</guid><description><![CDATA[<p>目的：ps效果图（<img title="" alt="" src="../../../upload/201003071258512374.jpg" onload="ResizeImage(this,0)" />），想把背景图上的文字保存为gif图片透明图片格式。</p><p>方法：</p><p>1.将文字在ps中设置成&ldquo;犀利&rdquo;模式。然后格式化文字图层，合并为一张图。</p><p>2.选中图层，ctrl+c，ctrl+n，ctrl+v，即新建一个文字图层大小的文件。</p><p>3.选中&ldquo;图像&rdquo;&mdash;&ldquo;模式&rdquo;&mdash;&ldquo;索引颜色&rdquo;&mdash;&ldquo;选项&rdquo;&mdash;&ldquo;杂边&rdquo;&mdash;&rdquo;自定义&ldquo;&mdash;设置成与背景相近的颜色。</p><p>4.&ldquo;文件&rdquo;&mdash;&ldquo;存储&rdquo;</p><p>gif效果：<img title="" alt="" src="../../../upload/201003071309433774.gif" onload="ResizeImage(this,0)" />，放在web背景里与效果图一摸一样，不在有毛边问题，达到了预期目的。</p><p>&nbsp;</p>]]></description><category>交互设计</category><comments>http://zihan.cn/post/52.htm#comment</comments><wfw:comment>http://zihan.cn/</wfw:comment><wfw:commentRss>http://zihan.cn/feed.asp?cmt=52</wfw:commentRss><trackback:ping>http://zihan.cn/cmd.asp?act=tb&amp;id=52&amp;key=deb1d9f9</trackback:ping></item><item><title>生活和工作</title><author>a@b.com (zihan)</author><link>http://zihan.cn/post/49.htm</link><pubDate>Mon, 01 Mar 2010 16:12:55 +0800</pubDate><guid>http://zihan.cn/post/49.htm</guid><description><![CDATA[<p>HP大中华区总裁孙振耀退休感言 ：</p><p>如果这篇文章没有分享给你，那是我的错。 <br />如果这篇文章分享给你了，你却没有读，继续走弯路的你不要怪我。 <br />如果你看了这篇文章，只读了一半你就说没时间了，说明你已经是个&ldquo;茫&rdquo;人了。 <br />如果你看完了，你觉得这篇文章只是讲讲大道理，说明你的人生阅历还不够，需要你把这篇文章珍藏，走出去碰几年壁，头破血流后再回来，再读，你就会感叹自己的年少无知。 <br />如果你看完了，觉得很有道理，然后束之高阁，继续走进拥挤的地铁，依然用着自己昨日的观念来思考自己的未来，你的人生也将继续重复着昨日的状况。 <br />如果你看完了，觉得那是一个过来人，对你的人生忠告，并你也愿意用他告诉你的思想去指导自己今后的生活，对你来讲成功不是很难，难的是你是否可以用这篇文章里的思想一直鞭策自己。 <br />如果你看完了，觉得那是一个长辈用他的一生的时间来写的一篇对你忠告的文章，说明你已经有了和他相似的人生阅历，只要你继续努力，成就伟业并不难，难的是你是否可以把自己的人生经验和他人分享呢？ <br />体验决定深度，知识决定广度。你的人生是什么呢？</p><p><strong>一、关于工作与生活</strong></p><p>　　有个有趣的观察，外企公司多的是25-35岁的白领，40岁以上的员工很少，二三十岁的外企员工是意气风发的，但外企公司40岁附近的经理人是很尴尬的。我见过的40岁附近的外企经理人大多在一直跳槽，最后大多跳到民企，比方说，唐骏。外企员工的成功很大程度上是公司的成功，并非个人的成功，西门子的确比国美大，但并不代表西门子中国经理比国美的老板强，甚至可以说差得很远。而进外企的人往往并不能很早理解这一点，把自己的成功90%归功于自己的能力，实际上，外企公司随便换个中国区总经理并不会给业绩带来什么了不起的影响。好了问题来了，当这些经理人40多岁了，他们的薪资要求变得很高，而他们的才能其实又不是那么出众，作为外企公司的老板，你会怎么选择?有的是只要不高薪水的，要出位的精明强干精力冲沛的年轻人，有的是，为什么还要用你?</p><p>　　从上面这个例子，其实可以看到我们的工作轨迹，二三十岁的时候，生活的压力还比较小，身体还比较好，上面的父母身体还好，下面又没有孩子，不用还房贷，也没有孩子要上大学，当个外企小白领还是很光鲜的，挣得不多也够花了。但是人终归要结婚生子，终归会老，到了40岁，父母老了，要看病要吃药，要有人看护，自己要还房贷，要过基本体面的生活，要养小孩&hellip;&hellip;那个时候需要挣多少钱才够花才重要。所以，看待工作，眼光要放远一点，一时的谁高谁低并不能说明什么。</p><p>　　从这个角度上来说，我不太赞成过于关注第一份工作的薪水，更没有必要攀比第一份工作的薪水，这在刚刚出校园的学生中间是很常见的。正常人大概要工作35年，这好比是一场马拉松比赛，和真正的马拉松比赛不同的是，这次比赛没有职业选手，每个人都只有一次机会。要知到，有很多人甚至坚持不到终点，大多数人最后是走到终点的，只有少数人是跑过终点的，因此在刚开始的时候，去抢领先的位置并没有太大的意义。刚进社会的时候如果进500强公司，大概能拿到3k-6k/月的工资，有些特别技术的人才可能可以到8k/月，可问题是，5年以后拿多少?估计5k-10k了不起了。起点虽然高，但增幅有限，而且，后面的年轻人追赶的压力越来越大。</p><p>　　我前两天问我的一个销售，你会的这些东西一个新人2年就都学会了，但新人所要求的薪水却只是你的一半，到时候，你怎么办?</p><p>　　职业生涯就像一场体育比赛，有初赛、复赛、决赛。初赛的时候大家都刚刚进社会，大多数都是实力一般的人，这时候努力一点认真一点很快就能让人脱颖而出，于是有的人二十多岁做了经理，有的人迟些也终于赢得了初赛，三十多岁成了经理。然后是复赛，能参加复赛的都是赢得初赛的，每个人都有些能耐，在聪明才智上都不成问题，这个时候再想要胜出就不那么容易了，单靠一点点努力和认真还不够，要有很强的坚忍精神，要懂得靠团队的力量，要懂得收服人心，要有长远的眼光&hellip;&hellip;</p><p>　　看上去赢得复赛并不容易，但，还不是那么难。因为这个世界的规律就是给人一点成功的同时让人骄傲自满，刚刚赢得初赛的人往往不知道自己赢得的仅仅是初赛，有了一点小小的成绩大多数人都会骄傲自满起来，认为自己已经懂得了全部，不需要再努力再学习了，他们会认为之所以不能再进一步已经不是自己的原因了。虽然他们仍然不好对付，但是他们没有耐性，没有容人的度量，更没有清晰长远的目光。就像一只愤怒的斗牛，虽然猛烈，最终是会败的，而赢得复赛的人则象斗牛士一样，不急不躁，跟随着自己的节拍，慢慢耗尽对手的耐心和体力。赢得了复赛以后，大约已经是一位很了不起的职业经理人了，当上了中小公司的总经理，大公司的副总经理，主管着每年几千万乃至几亿的生意。</p><p>　　最终的决赛来了，说实话我自己都还没有赢得决赛，因此对于决赛的决胜因素也只能凭自己的猜测而已，这个时候的输赢或许就像武侠小说里写得那样，大家都是高手，只能等待对方犯错了，要想轻易击败对手是不可能的，除了使上浑身解数，还需要一点运气和时间。世界的规律依然发挥着作用，赢得复赛的人已经不只是骄傲自满了，他们往往刚愎自用，听不进去别人的话，有些人的脾气变得暴躁，心情变得浮躁，身体变得糟糕，他们最大的敌人就是他们自己，在决赛中要做的只是不被自己击败，等着别人被自己击败。这和体育比赛是一样的，最后高手之间的比赛，就看谁失误少谁就赢得了决赛。</p><p>　　<strong>根源</strong></p><p>　　你工作快乐么?你的工作好么?</p><p>　　有没有觉得干了一段时间以后工作很不开心?有没有觉得自己入错了行?有没有觉得自己没有得到应有的待遇?有没有觉得工作像一团乱麻每天上班都是一种痛苦?有没有很想换个工作?有没有觉得其实现在的公司并没有当初想象得那么好?有没有觉得这份工作是当初因为生存压力而找的，实在不适合自己?你从工作中得到你想要得到的了么?你每天开心么?</p><p>　　天涯上愤怒的人很多，你有没有想过，你为什么不快乐?你为什么愤怒?</p><p>　　其实，你不快乐的根源，是因为你不知道要什么!你不知道要什么，所以你不知道去追求什么，你不知道追求什么，所以你什么也得不到。</p><p>　　我总觉得，职业生涯首先要关注的是自己，自己想要什么?大多数人大概没想过这个问题，唯一的想法只是&mdash;&mdash;我想要一份工作，我想要一份不错的薪水，我知道所有人对于薪水的渴望，可是，你想每隔几年重来一次找工作的过程么?你想每年都在这种对于工作和薪水的焦急不安中度过么?不想的话，就好好想清楚。饮鸩止渴，不能因为口渴就拼命喝毒药。越是焦急，越是觉得自己需要一份工作，越饥不择食，越想不清楚，越容易失败，你的经历越来越差，下一份工作的人看着你的简历就皱眉头。于是你越喝越渴，越渴越喝，陷入恶性循环。最终只能哀叹世事不公或者生不逢时，只能到天涯上来发泄一把，在失败者的共鸣当中寻求一点心理平衡罢了。大多数人都有生存压力，我也是，有生存压力就会有很多焦虑，积极的人会从焦虑中得到动力，而消极的人则会因为焦虑而迷失方向。所有人都必须在压力下做出选择，这就是世道，你喜欢也罢不喜欢也罢。</p><p>　　一般我们处理的事情分为重要的事情和紧急的事情，如果不做重要的事情就会常常去做紧急的事情。比如锻炼身体保持健康是重要的事情，而看病则是紧急的事情。如果不锻炼身体保持健康，就会常常为了病痛烦恼。又比如防火是重要的事情，而救火是紧急的事情，如果不注意防火，就要常常救火。找工作也是如此，想好自己究竟要什么是重要的事情，找工作是紧急的事情，如果不想好，就会常常要找工作。往往紧急的事情给人的压力比较大，迫使人们去赶紧做，相对来说重要的事情反而没有那么大的压力，大多数人做事情都是以压力为导向的，压力之下，总觉得非要先做紧急的事情，结果就是永远到处救火，永远没有停歇的时候。(很多人的工作也像是救火队一样忙碌痛苦，也是因为工作中没有做好重要的事情。)那些说自己活在水深火热为了生存顾不上那么多的朋友，今天找工作困难是当初你们没有做重要的事情，是结果不是原因。如果今天你们还是因为急于要找一份工作而不去思考，那么或许将来要继续承受痛苦找工作的结果。</p><p>　　我始终觉得我要说的话题，沉重了点，需要很多思考，远比唐笑打武警的话题来的枯燥乏味，但是，天下没有轻松的成功，成功，要付代价。请先忘记一切的生存压力，想想这辈子你最想要的是什么?所以，最要紧的事情，先想好自己想要什么。</p><p>　　<strong>什么是好工作</strong></p><p>　　当初微软有个唐骏，很多大学里的年轻人觉得这才是他们向往的职业生涯，我在清华bbs里发的帖子被这些学子们所不屑，那个时候学生们只想出国或者去外企，不过如今看来，我还是对的，唐骏去了盛大，陈天桥创立的盛大，一家民营公司。一个高学历的海归在500强的公司里拿高薪水，这大约是很多年轻人的梦想，问题是，每年毕业的大学生都在做这个梦，好的职位却只有500个。</p><p>　　人都是要面子的，也是喜欢攀比的，即使在工作上也喜欢攀比，不管那是不是自己想要的。大家认为外企公司很好，可是好在哪里呢?好吧，他们在比较好的写字楼，这是你想要的么?他们出差住比较好的酒店，这是你想要的么?别人会羡慕一份外企公司的工作，这是你想要的么?那一切都是给别人看的，你干吗要活得那么辛苦给别人看?另一方面，他们薪水福利一般，并没有特别了不起，他们的晋升机会比较少，很难做到很高阶的主管，他们虽然厌恶常常加班，却不敢不加班，因为&ldquo;你不干有得是人干&rdquo;，大部分情况下会找个台湾人香港人新加坡人来管你，而这些人又往往有些莫名其妙的优越感。你想清楚了么?500强一定好么?找工作究竟是考虑你想要什么，还是考虑别人想看什么?</p><p>　　我的大学同学们大多数都到美国了，甚至毕业这么多年了，还有人最近到国外去了。出国真的有那么好么?我的大学同学们，大多数还是在博士、博士后、访问学者地挣扎着，至今只有一个正经在一个美国大学里拿到个正式的教职。国内的教授很难当么?我有几个表亲也去了国外了，他们的父母独自在国内，没有人照顾，有好几次人在家里昏倒都没人知道，出国，真的这么光彩么?就像有人说的&ldquo;很多事情就像看A片，看的人觉得很爽，做的人未必。&rdquo;</p><p>　　人总想找到那个最好的，可是，什么是最好的?你觉得是最好的那个，是因为你的确了解，还是因为别人说他是最好的?即使他对于别人是最好的，对于你也一定是最好的么?</p><p>　　对于自己想要什么，自己要最清楚，别人的意见并不是那么重要。很多人总是常常被别人的意见所影响，亲戚的意见，朋友的意见，同事的意见&hellip;&hellip;问题是，你究竟是要过谁的一生?人的一生不是父母一生的续集，也不是儿女一生的前传，更不是朋友一生的外篇，只有你自己对自己的一生负责，别人无法也负不起这个责任。自己做的决定，至少到最后，自己没什么可后悔。对于大多数正常智力的人来说，所做的决定没有大的对错，无论怎么样的选择，都是可以尝试的。比如你没有考自己上的那个学校，没有入现在这个行业，这辈子就过不下去了?就会很失败?不见得。</p><p>　　我想，好工作，应该是适合你的工作，具体点说，应该是能给你带来你想要的东西的工作，你或许应该以此来衡量你的工作究竟好不好，而不是拿公司的大小，规模，外企还是国企，是不是有名，是不是上市公司来衡量。小公司，未必不是好公司，赚钱多的工作，也未必是好工作。你还是要先弄清楚你想要什么，如果你不清楚你想要什么，你就永远也不会找到好工作，因为你永远只看到你得不到的东西，你得到的，都是你不想要的。</p><p>　　可能，最好的，已经在你的身边，只是，你还没有学会珍惜。人们总是盯着得不到的东西，而忽视了那些已经得到的东西。</p><p>　　<strong>普通人</strong></p><p>　　我发现中国人的励志和国外的励志存在非常大的不同，中国的励志比较鼓励人立下大志愿，卧薪尝胆，有朝一日成富成贵。而国外的励志比较鼓励人勇敢面对现实生活，面对普通人的困境，虽然结果也是成富成贵，但起点不一样，相对来说，我觉得后者在操作上更现实，而前者则需要用999个失败者来堆砌一个成功者的故事。</p><p>　　我们都是普通人，普通人的意思就是，概率这件事是很准的。因此，我们不会买彩票中500万，我们不会成为比尔盖茨或者李嘉诚，我们不会坐飞机掉下来，我们当中很少的人会创业成功，我们之中有30%的人会离婚，我们之中大部分人会活过65岁&hellip;&hellip;</p><p>　　所以请你在想自己要什么的时候，要得&ldquo;现实&rdquo;一点，你说我想要做李嘉诚，抱歉，我帮不上你。成为比尔盖茨或者李嘉诚这种人，是靠命的，看我写的这篇文章绝对不会让你成为他们，即使你成为了他们，也绝对不是我这篇文章的功劳。&ldquo;王侯将相宁有种乎&rdquo;但真正当皇帝的只有一个人，王侯将相，人也不多。目标定得高些对于喜欢挑战的人来说有好处，但对于大多数普通人来说，反而比较容易灰心沮丧，很容易就放弃了。</p><p>　　回过头来说，李嘉诚比你有钱大致50万倍，他比你更快乐么?或许。有没有比你快乐50万倍，一定没有。他比你最多也就快乐一两倍，甚至有可能还不如你快乐。寻找自己想要的东西不是和别人比赛，比谁要得更多更高，比谁的目标更远大。虽然成为李嘉诚这个目标很宏大，但你并不见得会从这个目标以及追求目标的过程当中获得快乐，而且基本上你也做不到。你必须听听你内心的声音，寻找真正能够使你获得快乐的东西，那才是你想要的东西。</p><p>　　你想要的东西，或者我们把它称之为目标，目标其实并没有高低之分，你不需要因为自己的目标没有别人远大而不好意思，达到自己的目标其实就是成功，成功有大有小，快乐却是一样的。我们追逐成功，其实追逐的是成功带来的快乐，而非成功本身。职业生涯的道路上，我们常常会被攀比的心态蒙住眼睛，忘记了追求的究竟是什么，忘记了是什么能使我们更快乐。</p><p>　　社会上一夜暴富的新闻很多，这些消息，总会在我们的心里面掀起很多涟漪，涟漪多了就变成惊涛骇浪，心里的惊涛骇浪除了打翻承载你目标的小船，并不会使得你也一夜暴富。&ldquo;只见贼吃肉，不见贼挨揍。&rdquo;我们这些普通人既没有当贼的勇气，又缺乏当贼的狠辣绝决，虽然羡慕吃肉，却更害怕挨揍，偶尔看到几个没挨揍的贼就按奈不住，或者心思活动，或者大感不公，真要叫去做贼，却也不敢。</p><p>　　我还是过普通人的日子，要普通人的快乐，至少，晚上睡得着觉。</p><p>　　<strong>跳槽与积累</strong></p><p>　　首先要说明，工作是一件需要理智的事情，所以不要在工作上耍个性，天涯上或许会有人觉得你很有个性而叫好，煤气公司电话公司不会因为觉得你很有个性而免了你的帐单。当你很帅地炒掉了你的老板，当你很酷地挖苦了一番招聘的HR，账单还是要照付，只是你赚钱的时间更少了，除了你自己，没人受损失。</p><p>　　我并不反对跳槽，但跳槽决不是解决问题的办法，而且频繁跳槽的后果是让人觉得没有忠诚度可言，而且不能安心工作。现在很多人从网上找工作，很多找工作的网站常常给人出些馊主意，要知道他们是盈利性企业，当然要从自身盈利的角度来考虑，大家越是频繁跳槽频繁找工作他们越是生意兴隆，所以鼓动人们跳槽是他们的工作。所以他们会常常告诉你，你拿的薪水少了，你享受的福利待遇差了，又是&ldquo;薪情快报&rdquo;又是&ldquo;赞叹自由奔放的灵魂&rdquo;。至于是否会因此让你不能安心，你跳了槽是否解决问题，是否更加开心，那个，他们管不着。</p><p>　　要跳槽肯定是有问题，一般来说问题发生了，躲是躲不开的，很多人跳槽是因为这样或者那样的不开心，如果这种不开心，在现在这个公司不能解决，那么在下一个公司多半也解决不掉。你必须相信，90%的情况下，你所在的公司并没有那么烂，你认为不错的公司也没有那么好。就像围城里说的，&ldquo;城里的人拼命想冲出来，而城外的人拼命想冲进去。&rdquo;每个公司都有每个公司的问题，没有问题的公司是不存在的。换个环境你都不知道会碰到什么问题，与其如此，不如就在当下把问题解决掉。很多问题当你真的想要去解决的时候，或许并没有那么难。有的时候你觉得问题无法解决，事实上，那只是&ldquo;你觉得&rdquo;。</p><p>　　人生的曲线应该是曲折向上的，偶尔会遇到低谷但大趋势总归是曲折向上的，而不是象脉冲波一样每每回到起点，我见过不少面试者，30多岁了，四五份工作经历，每次多则3年，少则1年，30多岁的时候回到起点从一个初级职位开始干起，拿基本初级的薪水，和20多岁的年轻人一起竞争，不觉得有点辛苦么?这种日子好过么?</p><p>　　我非常不赞成在一个行业超过3年以后换行业，基本上，35岁以前我们的生存资本靠打拼，35岁以生存的资本靠的就是积累，这种积累包括人际关系，经验，人脉，口碑&hellip;&hellip;如果常常更换行业，代表几年的积累付之东流，一切从头开始，如果换了两次行业，35岁的时候大概只有5年以下的积累，而一个没有换过行业的人至少有了10年的积累，谁会占优势?工作到2-3年的时候，很多人觉得工作不顺利，好像到了一个瓶颈，心情烦闷，就想辞职，乃至换一个行业，觉得这样所有一切烦恼都可以抛开，会好很多。其实这样做只是让你从头开始，到了时候还是会发生和原来行业一样的困难，熬过去就向上跨了一大步，要知道每个人都会经历这个过程，每个人的职业生涯中都会碰到几个瓶颈，你熬过去了而别人没有熬过去你就领先了。跑长跑的人会知道，开始的时候很轻松，但是很快会有第一次的难受，但过了这一段又能跑很长一段，接下来会碰到第二次的难受，坚持过了以后又能跑一段，如此往复，难受一次比一次厉害，直到坚持不下去了。大多数人第一次就坚持不了了，一些人能坚持到第二次，第三次虽然大家都坚持不住了，可是跑到这里的人也没几个了，这点资本足够你安稳活这一辈子了。</p><p>　　一份工作到两三年的时候，大部分人都会变成熟手，这个时候往往会陷入不断的重复，有很多人会觉得厌倦，有些人会觉得自己已经搞懂了一切，从而懒得去寻求进步了。很多时候的跳槽是因为觉得失去兴趣了，觉得自己已经完成比赛了。其实这个时候比赛才刚刚开始，工作两三年的人，无论是客户关系，人脉，手下，和领导的关系，在业内的名气&hellip;&hellip;还都是远远不够的，但稍有成绩的人总是会自我感觉良好的，每个人都觉得自己跟客户关系铁得要命，觉得自己在业界的口碑好得很。其实可以肯定地说，一定不是，这个时候，还是要拿出前两年的干劲来，稳扎稳打，积累才刚刚开始。</p><p>　　你足够了解你的客户吗?你知道他最大的烦恼是什么吗?你足够了解你的老板么?你知道他最大的烦恼是什么吗?你足够了解你的手下么?你知道他最大的烦恼是什么吗?如果你不知道，你凭什么觉得自己已经积累够了?如果你都不了解，你怎么能让他们帮你的忙，做你想让他们做的事情?如果他们不做你想让他们做的事情，你又何来的成功?</p><p>　　<strong>等待</strong></p><p>　　这是个浮躁的人们最不喜欢的话题，本来不想说这个话题，因为会引起太多的争论，而我又无意和人争论这些，但是考虑到对于职业生涯的长久规划，这是一个躲避不了的话题，还是决定写一写，不爱看的请离开吧。</p><p>　　并不是每次穿红灯都会被汽车撞，并不是每个罪犯都会被抓到，并不是每个错误都会被惩罚，并不是每个贪官都会被枪毙，并不是你的每一份努力都会得到回报，并不是你的每一次坚持都会有人看到，并不是你每一点付出都能得到公正的回报，并不是你的每一个善意都能被理解&hellip;&hellip;这个，就是世道。好吧，世道不够好，可是，你有推翻世道的勇气么?如果没有，你有更好的解决办法么?有很多时候，人需要一点耐心，一点信心。每个人总会轮到几次不公平的事情，而通常，安心等待是最好的办法。</p><p>　　有很多时候我们需要等待，需要耐得住寂寞，等待属于你的那一刻。周润发等待过，刘德华等待过，周星驰等待过，王菲等待过，张艺谋也等待过&hellip;&hellip;看到了他们如今的功成名就的人，你可曾看到当初他们的等待和耐心?你可曾看到金马奖影帝在街边摆地摊?你可曾看到德云社一群人在剧场里给一位观众说相声?你可曾看到周星驰的角色甚至连一句台词都没有?每一个成功者都有一段低沉苦闷的日子，我几乎能想象得出来他们借酒浇愁的样子，我也能想象得出他们为了生存而挣扎的窘迫。在他们一生最中灿烂美好的日子里，他们渴望成功，但却两手空空，一如现在的你。没有人保证他们将来一定会成功，而他们的选择是耐住寂寞。如果当时的他们总念叨着&ldquo;成功只是属于特权阶级的&rdquo;，你觉得他们今天会怎样?</p><p>　　曾经我也不明白有些人为什么并不比我有能力却要坐在我的头上，年纪比我大就一定要当我的领导么?为什么有些烂人不需要努力就能赚钱?为什么刚刚改革开放的时候的人能那么容易赚钱，而轮到我们的时候，什么事情都要正规化了?有一天我突然想，我还在上学的时候他们就在社会里挣扎奋斗了，他们在社会上奋斗积累了十几二十年，我们新人来了，他们有的我都想要，我这不是在要公平，我这是在要抢劫。因为我要得太急，因为我忍不住寂寞。二十多岁的男人，没有钱，没有事业，却有蓬勃的欲望。</p><p>　　人总是会遇到挫折的，人总是会有低潮的，人总是会有不被人理解的时候的，人总是有要低声下气的时候，这些时候恰恰是人生最关键的时候，因为大家都会碰到挫折，而大多数人过不了这个门槛，你能过，你就成功了。在这样的时刻，我们需要耐心等待，满怀信心地去等待，相信，生活不会放弃你，机会总会来的。至少，你还年轻，你没有坐牢，没有生治不了的病，没有欠还不起的债。比你不幸的人远远多过比你幸运的人，你还怕什么?路要一步步走，虽然到达终点的那一步很激动人心，但大部分的脚步是平凡甚至枯燥的，但没有这些脚步，或者耐不住这些平凡枯燥，你终归是无法迎来最后的那些激动人心。</p><p>　　逆境，是上帝帮你淘汰竞争者的地方。要知道，你不好受，别人也不好受，你坚持不下去了，别人也一样，千万不要告诉别人你坚持不住了，那只能让别人获得坚持的信心，让竞争者看着你微笑的面孔，失去信心，退出比赛。胜利属于那些有耐心的人。</p><p>　　在最绝望的时候，我会去看电影《The Pursuit of Happyness》《Jerry Maguire》，让自己重新鼓起勇气，因为，无论什么时候，我们总还是有希望。当所有的人离开的时候，我不失去希望，我不放弃。每天下班坐在车里，我喜欢哼着《隐形的翅膀》看着窗外，我知道，我在静静等待，等待属于我的那一刻。</p><p>　　原贴里伊吉网友的话我很喜欢，抄录在这里：</p><p>　　每个人都希望，自己是独一无二的特殊者</p><p>　　含着金匙出生、投胎到好家庭、工作安排到电力局拿1w月薪这样的小概率事件，当然最好轮到自己</p><p>　　红军长征两万五、打成右派反革命、胼手胝足牺牲尊严去奋斗，最好留给祖辈父辈和别人</p><p>　　自然，不是每个吃过苦的人都会得到回报</p><p>　　但是，任何时代，每一个既得利益者身后，都有他的祖辈父辈奋斗挣扎乃至流血付出生命的身影</p><p>　　羡慕别人有个好爸爸，没什么不可以</p><p>　　问题是，你的下一代，会有一个好爸爸吗?</p><p>　　至于问到为什么不能有同样的赢面概率?我只能问：为什么物种竞争中，人和猴子不能有同样的赢面概率?</p><p>　　物竞天择。猴子的灵魂不一定比你卑微，但你身后有几十万年的类人猿进化积淀。</p><p>　　<strong>入对行跟对人</strong></p><p>　　在中国，大概很少有人是一份职业做到底的，虽然如此，第一份工作还是有些需要注意的地方，有两件事情格外重要，第一件是入行，第二件事情是跟人。第一份工作对人最大的影响就是入行，现代的职业分工已经很细，我们基本上只能在一个行业里成为专家，不可能在多个行业里成为专家。很多案例也证明即使一个人在一个行业非常成功，到另外一个行业，往往完全不是那么回事情，&ldquo;你想改变世界，还是想卖一辈子汽水?&rdquo;是乔布斯邀请百事可乐总裁约翰&bull;斯考利加盟苹果时所说的话，结果这位在百事非常成功的约翰，到了苹果表现平平。其实没有哪个行业特别好，也没有哪个行业特别差，或许有报道说哪个行业的平均薪资比较高，但是他们没说的是，那个行业的平均压力也比较大。看上去很美的行业一旦进入才发现很多地方其实并不那么完美，只是外人看不见。</p><p>　　说实话，我自己都没有发大财，所以我的建议只是让人快乐工作的建议，不是如何发大财的建议，我们只讨论一般普通打工者的情况。我认为选择什么行业并没有太大关系，看问题不能只看眼前。比如，从前年开始，国家开始整顿医疗行业，很多医药公司开不下去，很多医药行业的销售开始转行。其实医药行业的不景气是针对所有公司的，并非针对一家公司，大家的日子都不好过，这个时候跑掉是非常不划算的，大多数正规的医药公司即使不做新生意撑个两三年总是能撑的，大多数医药销售靠工资撑个两三年也是可以撑的，国家不可能永远捏着医药行业不放的，两三年以后光景总归还会好起来的，那个时候别人都跑了而你没跑，那时的日子应该会好过很多。有的时候觉得自己这个行业不行了，问题是，再不行的行业，做得人少了也变成了好行业，当大家都觉得不好的时候，往往却是最好的时候。大家都觉得金融行业好，金融行业门槛高不说，有多少人削尖脑袋要钻进去，竞争激励，进去以后还要时时提防，一个疏忽，就被后来的人给挤掉了，压力巨大，又如何谈得上快乐?也就未必是&ldquo;好&rdquo;工作了。</p><p>　　太阳能这个东西至今还不能进入实际应用的阶段，但是中国已经有7家和太阳能有关的公司在纽交所上市了，国美苏宁永乐其实是贸易型企业，也能上市，鲁泰纺织连续10年利润增长超过50%，卖茶的一茶一座，卖衣服的海澜之家都能上市&hellip;&hellip;其实选什么行业真的不重要，关键是怎么做。事情都是人做出来的，关键是人。</p><p>　　有一点是需要记住的，这个世界上，有史以来直到我们能够预见得到的未来，成功的人总是少数，有钱的人总是少数，大多数人是一般的，普通的，不太成功的。因此，大多数人的做法和看法，往往都不是距离成功最近的做法和看法。因此大多数人说好的东西不见得好，大多数人说不好的东西不见得不好。大多数人都去炒股的时候说明跌只是时间问题，大家越是热情高涨的时候，跌的日子越近。大多数人买房子的时候，房价不会涨，而房价涨的差不多的时候，大多数人才开始买房子。不会有这样一件事情让大家都变成功，发了财，历史上不曾有过，将来也不会发生。有些东西即使一时运气好得到了，还是会在别的时候别的地方失去的。</p><p>　　年轻人在职业生涯的刚开始，尤其要注意的是，要做对的事情，不要让自己今后几十年的人生总是提心吊胆，更不值得为了一份工作赔上自己的青春年华。我的公司是个不行贿的公司，以前很多人不理解，甚至自己的员工也不理解，不过如今，我们是同行中最大的企业，客户乐意和我们打交道，尤其是在国家打击腐败的时候，每个人都知道我们做生意不给钱的名声，都敢于和我们做生意。而勇于给钱的公司，不是倒了，就是跑了，要不就是每天睡不好觉，人还是要看长远一点。很多时候，看起来最近的路，其实是最远的路，看起来最远的路，其实是最近的路。</p><p>　　跟对人是说，入行后要跟个好领导好老师，刚进社会的人做事情往往没有经验，需要有人言传身教。对于一个人的发展来说，一个好领导是非常重要的。所谓&ldquo;好&rdquo;的标准，不是他让你少干活多拿钱，而是以下三个。</p><p>　　首先，好领导要有宽广的心胸，如果一个领导每天都会发脾气，那几乎可以肯定他不是个心胸宽广的人，能发脾气的时候却不发脾气的领导，多半是非常厉害的领导。中国人当领导最大的毛病是容忍不了能力比自己强的人，所以常常可以看到的一个现象是，领导很有能力，手下一群庸才或者手下一群闲人。如果看到这样的环境，还是不要去的好。</p><p>　　其次，领导要愿意从下属的角度来思考问题，这一点其实是从面试的时候就能发现的，如果这位领导总是从自己的角度来考虑问题，几乎不听你说什么，这就危险了。从下属的角度来考虑问题并不代表同意下属的说法，但他必须了解下属的立场，下属为什么要这么想，然后他才有办法说服你，只关心自己怎么想的领导往往难以获得下属的信服。</p><p>　　第三，领导敢于承担责任，如果出了问题就把责任往下推，有了功劳就往自己身上揽，这样的领导不跟也罢。选择领导，要选择关键时刻能抗得住的领导，能够为下属的错误买单的领导，因为这是他作为领导的责任。</p><p>　　有可能，你碰不到好领导，因为，中国的领导往往是屁股决定脑袋的领导，因为他坐领导的位置，所以他的话就比较有道理，这是传统观念官本位的误区，可能有大量的这种无知无能的领导，只是，这对于你其实是好事，如果将来有一天你要超过他，你希望他比较聪明还是比较笨?相对来说这样的领导其实不难搞定，只是你要把自己的身段放下来而已。多认识一些人，多和比自己强的人打交道，同样能找到好的老师，不要和一群同样郁闷的人一起控诉社会，控诉老板，这帮不上你，只会让你更消极。和那些比你强的人打交道，看他们是怎么想的，怎么做的，学习他们，然后跟更强的人打交道。</p><p>　　<strong>选择</strong></p><p>　　我们每天做的最多的事情，其实是选择，因此在谈职业生涯的时候不得不提到这个话题。</p><p>　　我始终认为，在很大的范围内，我们究竟会成为一个什么样的人，决定权在我们自己，每天我们都在做各种各样的选择，我可以不去写这篇文章，去别人的帖子拍拍砖头，也可以写下这些文字，帮助别人的同时也整理自己的思路，我可以多注意下格式让别人易于阅读，也可以写成一堆，我可以就这样发上来，也可以在发以前再看几遍，你可以选择不刮胡子就去面试，也可以选择出门前照照镜子&hellip;&hellip;每天，每一刻我们都在做这样那样的决定，我们可以漫不经心，也可以多花些心思，成千上万的小选择累计起来，就决定了最终我们是个什么样的人。</p><p>　　从某种意义上来说我们的未来不是别人给的，是我们自己选择的，很多人会说我命苦啊，没得选择阿，如果你认为&ldquo;去微软还是去IBM&rdquo;&ldquo;上清华还是上北大&rdquo;&ldquo;当销售副总还是当厂长&rdquo;这种才叫选择的话，的确你没有什么选择，大多数人都没有什么选择。但每天你都可以选择是否为客户服务更周到一些，是否对同事更耐心一些，是否把工作做得更细致一些，是否把情况了解得更清楚一些，是否把不清楚的问题再弄清楚一些&hellip;&hellip;你也可以选择在是否在痛苦中继续坚持，是否抛弃掉自己的那些负面的想法，是否原谅一个人的错误，是否相信我在这里写下的这些话，是否不要再犯同样的错误&hellip;&hellip;生活每天都在给你选择的机会，每天都在给你改变自己人生的机会，你可以选择赖在地上撒泼打滚，也可以选择咬牙站起来。你永远都有选择。有些选择不是立杆见影的，需要累积，比如农民可以选择自己常常去浇地，也可以选择让老天去浇地，诚然你今天浇水下去苗不见得今天马上就长出来，但常常浇水，大部分苗终究会长出来的，如果你不浇，收成一定很糟糕。</p><p>　　每天生活都在给你机会，他不会给你一叠现金也不会拱手送你个好工作，但实际上，他还是在给你机会。我的家庭是一个普通的家庭，没有任何了不起的社会关系，我的父亲在大学毕业以后就被分配到了边疆，那个小县城只有一条马路，他们那一代人其实比我们更有理由抱怨，他们什么也没得到，年轻的时候文化大革命，书都没得读，支援边疆插队落户，等到老了，却要给年轻人机会了。他有足够的理由象成千上万那样的青年一样坐在那里抱怨生不逢时，怨气冲天。然而在分配到边疆的十年之后，国家恢复招研究生，他考回了原来的学校。研究生毕业，他被分配到了安徽一家小单位里，又是3年以后，国家第一届招收博士生，他又考回了原来的学校，成为中国第一代博士，那时的他比现在的我年纪还大。生活并没有放弃他，他也没有放弃生活。10年的等待，他做了他自己的选择，他没有放弃，他没有破罐子破摔，所以时机到来的时候，他改变了自己的人生。你最终会成为什么样的人，就决定在你的每个小小的选择之间。</p><p>　　你选择相信什么?你选择和谁交朋友?你选择做什么?你选择怎么做?&hellip;&hellip;我们面临太多的选择，而这些选择当中，意识形态层面的选择又远比客观条件的选择来得重要得多，比如选择做什么产品其实并不那么重要，而选择怎么做才重要。选择用什么人并不重要，而选择怎么带这些人才重要。大多数时候选择客观条件并不要紧，大多数关于客观条件的选择并没有对错之分，要紧的是选择怎么做。一个大学生毕业了，他要去微软也好，他要卖猪肉也好，他要创业也好，他要做游戏代练也好，只要不犯法，不害人，都没有什么关系，要紧的是，选择了以后，怎么把事情做好。</p><p>　　除了这些，你还可以选择时间和环境，比如，你可以选择把这辈子最大的困难放在最有体力最有精力的时候，也可以走一步看一步，等到了40岁再说，只是到了40多岁，那正是一辈子最脆弱的时候，上有老下有小，如果在那个时候碰上了职业危机，实在是一件很苦恼的事情。与其如此不如在20多岁30多岁的时候吃点苦，好让自己脆弱的时候活得从容一些。你可以选择在温室里成长，也可以选择到野外磨砺，你可以选择在办公室吹冷气的工作，也可以选择40度的酷热下，去见你的客户，只是，这一切最终会累积起来，引导你到你应得的未来。</p><p>　　我不敢说所有的事情你都有得选择，但是绝大部分事情你有选择，只是往往你不把这当作一种选择。认真对待每一次选择，才会有比较好的未来。</p><p>　　<strong>选择职业</strong></p><p>　　职业的选择，总的来说，无非就是销售、市场、客服、物流、行政、人事、财务、技术、管理几个大类，有个有趣的现象就是，500强的CEO当中最多的是销售出身，第二多的人是财务出身，这两者加起来大概超过95%。现代IT行业也有技术出身成为老板的，但实际上，后来他们还是从事了很多销售和市场的工作，并且表现出色，公司才获得了成功，完全靠技术能力成为公司老板的，几乎没有。这是有原因的，因为销售就是一门跟人打交道的学问，而管理其实也是跟人打交道的学问，这两者之中有很多相通的东西，他们的共同目标就是&ldquo;让别人去做某件特定的事情。&rdquo;而财务则是从数字的层面了解生意的本质，从宏观上看待生意的本质，对于一个生意是否挣钱，是否可以正常运作有着最深刻的认识。</p><p>　　公司小的时候是销售主导公司，而公司大的时候是财务主导公司，销售的局限性在于只看人情不看数字，财务的局限性在于只看数字不看人情。公司初期，运营成本低，有订单就活得下去，跟客户也没有什么谈判的条件，别人肯给生意做已经谢天谢地了，这个时候订单压倒一切，客户的要求压倒一切，所以当然要顾人情。公司大了以后，一切都要规范化，免得因为不规范引起一些不必要的风险，同时运营成本也变高，必须提高利润率，把有限的资金放到最有产出的地方。对于上市公司来说，股东才不管你客户是不是最近出国，最近是不是那个省又在搞严打，到了时候就要把业绩拿出来，拿不出来就抛股票，这个时候就是数字压倒一切。</p><p>　　前两天听到有人说一句话觉得很有道理，开始的时候我们想&ldquo;能做什么?&rdquo;，等到公司做大了有规模了，我们想&ldquo;不能做什么。&rdquo;很多人在工作中觉得为什么领导这么保守，这也不行那也不行，错过很多机会。很多时候是因为，你还年轻，你想的是&ldquo;能做什么&rdquo;，而作为公司领导要考虑的方面很多，他比较关心&ldquo;不能做什么&rdquo;。</p><p>　　我并非鼓吹大家都去做销售或者财务，究竟选择什么样的职业，和你究竟要选择什么样的人生有关系，有些人就喜欢下班按时回家，看看书听听音乐，那也挺好，但就不适合找个销售的工作了，否则会是折磨自己。有些人就喜欢出风头，喜欢成为一群人的中心，如果选择做财务工作，大概也干不久，因为一般老板不喜欢财务太积极，也不喜欢财务话太多。先想好自己要过怎样的人生，再决定要找什么样的职业。有很多的不快乐，其实是源自不满足，而不满足，很多时候是源自于心不定，而心不定则是因为不清楚究竟自己要什么，不清楚要什么的结果就是什么都想要，结果什么都没得到。</p><p>　　我想，我们还是因为生活而工作，不是因为工作而生活，生活是最要紧的，工作只是生活中的一部分。我总是觉得生活的各方方面都是相互影响的，如果生活本身一团乱麻，工作也不会顺利。所以要有娱乐、要有社交、要锻炼身体，要有和睦的家庭&hellip;&hellip;最要紧的，要开心，我的两个销售找我聊天，一肚子苦水，我问他们，2年以前，你什么都没有，工资不高，没有客户关系，没有业绩，处于被开的边缘，现在的你比那时条件好了很多，为什么现在却更加不开心了?如果你做得越好越不开心，那你为什么还要工作?首先的首先，人还是要让自己高兴起来，让自己心态好起来，这种发自内心的改变会让你更有耐心，更有信心，更有气质，更能包容&hellip;&hellip;否则，看看镜子里的你，你满意么?</p><p>　　有人会说，你说得容易，我每天加班，不加班老板就会把我炒掉，每天累得要死，哪有时间娱乐、社交、锻炼?那是人们把目标设定太高的缘故，如果你还在动不动就会被老板炒掉的边缘，那么你当然不能设立太高的目标，难道你还想每天去打高尔夫?你没时间去健身房锻炼身体，但是上下班的时候多走几步可以吧，有楼梯的时候走走楼梯不走电梯可以吧?办公的间隙扭扭脖子拉拉肩膀做做俯卧撑可以吧?谁规定锻炼就一定要拿出每天2个小时去健身房?你没时间社交，每月参加郊游一次可以吧，周末去参加个什么音乐班，绘画班之类的可以吧，去尝试认识一些同行，和他们找机会交流交流可以吧?开始的时候总是有些难的，但迈出这一步就会向良性循环的方向发展。而每天工作得很苦闷，剩下的时间用来咀嚼苦闷，只会陷入恶性循环，让生活更加糟糕。</p><p>　　该文章转载自德仔工作室</p>]]></description><category>它山之石</category><comments>http://zihan.cn/post/49.htm#comment</comments><wfw:comment>http://zihan.cn/</wfw:comment><wfw:commentRss>http://zihan.cn/feed.asp?cmt=49</wfw:commentRss><trackback:ping>http://zihan.cn/cmd.asp?act=tb&amp;id=49&amp;key=bbe32bb5</trackback:ping></item><item><title>JS函数集合大全</title><author>a@b.com (zihan)</author><link>http://zihan.cn/post/48.htm</link><pubDate>Thu, 25 Feb 2010 18:21:28 +0800</pubDate><guid>http://zihan.cn/post/48.htm</guid><description><![CDATA[<p><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Simsun; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"><span class="Apple-style-span" style="font-family: verdana,sans-serif; font-size: 14px; line-height: 21px; text-align: left;"><p style="margin: 1em 0px 0.5em; padding: 0px;"><font size="2">1.document.write(&quot;&quot;); 输出语句<br />2.JS中的注释为//<br />3.传统的HTML文档顺序是:document-&gt;html-&gt;(head,body)<br />4.一个浏览器窗口中的DOM顺序是:window-&gt;(navigator,screen,history,location,document)<br />5.得到表单中元素的名称和值:<font style="background-color: rgb(255, 255, 153);">document.getElementById</font><font style="background-color: rgb(255, 255, 153);">(&quot;表单中元素的ID号&quot;).name(或value)</font><br />6.一个小写转大写的JS: document.getElementById(&quot;output&quot;).value = document.getElementById(&quot;input&quot;).value.toUpperCase();<br />7.JS中的值类型:String,Number,Boolean,Null,Object,Function<br />8.JS中的字符型转换成数值型:parseInt(),parseFloat()<br />9.JS中的数字转换成字符型:(&quot;&quot;+变量)<br />10.JS中的取字符串长度是:(<font style="background-color: rgb(255, 255, 153);">length</font>)<br />11.JS中的字符与字符相连接使用+号.<br />12.JS中的比较操作符有:==等于,!=不等于,&gt;,&gt;=,&lt;.&lt;=<br />13.JS中声明变量使用:var来进行声明<br />14.JS中的判断语句结构:if(condition){}else{}<br />15.JS中的循环结构:for([initial expression];[condition];[upadte expression]) {inside loop}<br />16.循环中止的命令是:break<br />17.JS中的函数定义:function functionName([parameter],...){statement[s]}<br />18.<font style="background-color: rgb(255, 255, 153);">当文件中出现多个form表单时.可以用document.forms[0],document.forms[1]来代替.</font><br />19.窗口:打开窗口window.open(), 关闭一个窗口:window.close(), 窗口本身:self<br />20.状态栏的设置:<font style="background-color: rgb(255, 255, 153);">window.status=&quot;字符&quot;;</font><br />21.弹出提示信息:window.alert(&quot;字符&quot;);<br />22.弹出确认框:window.confirm();<br />23.弹出输入提示框:window.prompt();<br />24.指定当前显示链接的位置:window.location.href=&quot;URL&quot;<br />25.取出窗体中的所有表单的数量:<font style="background-color: rgb(255, 255, 153);">document.forms.length</font><br />26.关闭文档的输出流:<font style="background-color: rgb(255, 255, 153);">document.close();</font><br />27.字符串追加连接符:+=<br />28.创建一个文档元素:document.createElement(),document.createTextNode()<br />29.得到元素的方法:document.getElementById()<br />30.设置表单中所有文本型的成员的值为空:<br />var form = window.document.forms[0]<br />for (var i = 0; i&lt;form.elements.length;i++){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (form.elements[i].type == &quot;text&quot;){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; form.elements[i].value = &quot;&quot;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />}<br />31.复选按钮在JS中判断是否选中:document.forms[0].checkThis.checked (checked属性代表为是否选中返回TRUE或FALSE)<br />32.单选按钮组(单选按钮的名称必须相同):取单选按钮组的长度<font style="background-color: rgb(255, 255, 153);">document.forms[0].groupName.length</font><br />33.单选按钮组判断是否被选中也是用checked.<br />34.下拉列表框的值:document.forms[0].selectName.options[n].value (n有时用下拉列表框名称加上.selectedIndex来确定被选中的值)<br />35.字符串的定义:var myString = new String(&quot;This is lightsword&quot;);<br />36.字符串转成大写:string.toUpperCase(); 字符串转成小写:string.toLowerCase();<br />37.返回字符串2在字符串1中出现的位置:String1.indexOf(&quot;String2&quot;)!=-1则说明没找到.<br />38.取字符串中指定位置的一个字符:StringA.charAt(9);<br />39.取出字符串中指定起点和终点的子字符串:stringA.substring(2,6);<br />40.数学函数:Math.PI(返回圆周率),Math.SQRT2(返回开方),Math.max(value1,value2)返回两个数中的最在值,Math.pow(value1,10)返回value1的十次方,Math.round(value1)四舍五入函数,Math.floor(Math.random()*(n+1))返回随机数<br />41.定义日期型变量:<font style="background-color: rgb(255, 255, 153);">var today = new Date();</font><br />42.日期函数列表:dateObj.getTime()得到时间,dateObj.getYear()得到年份,dateObj.getFullYear()得到四位的年份,dateObj.getMonth()得到月份,dateObj.getDate()得到日,dateObj.getDay()得到日期几,dateObj.getHours()得到小时,dateObj.getMinutes()得到分,dateObj.getSeconds()得到秒,dateObj.setTime(value)设置时间,dateObj.setYear(val)设置年,dateObj.setMonth(val)设置月,dateObj.setDate(val)设置日,dateObj.setDay(val)设置星期几,dateObj.setHours设置小时,dateObj.setMinutes(val)设置分,dateObj.setSeconds(val)设置秒&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [注意:此日期时间从0开始计]<br />43.FRAME的表示方式: [window.]frames[n].ObjFuncVarName,frames[&quot;frameName&quot;].ObjFuncVarName,frameName.ObjFuncVarName<br />44.parent代表父亲对象,top代表最顶端对象<br />45.打开子窗口的父窗口为:opener<br />46.表示当前所属的位置:this<br />47.当在超链接中调用JS函数时用:(Javascript:)来开头后面加函数名<br />48.在老的浏览器中不执行此JS:&lt;!--&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; //--&gt;<br />49.引用一个文件式的JS:&lt;script type=&quot;text/Javascript&quot; src=&quot;aaa.js&quot;&gt;&lt;/script&gt;<br />50.指定在不支持脚本的浏览器显示的HTML:&lt;noscript&gt;&lt;/noscript&gt;<br />51.当超链和ONCLICK事件都有时,则老版本的浏览器转向a.html,否则转向b.html.例:&lt;a href=&quot;a.html&quot; onclick=&quot;location.href='b.html';return false&quot;&gt;dfsadf&lt;/a&gt;<br />52.JS的内建对象有:Array,Boolean,Date,Error,EvalError,Function,Math,Number,Object,RangeError,ReferenceError,RegExp,String,SyntaxError,TypeError,URIError<br />53.JS中的换行:\n<br />54.窗口全屏大小:&lt;script&gt;function fullScreen(){ this.moveTo(0,0);this.outerWidth=screen.availWidth;this.outerHeight=screen.availHeight;}window.maximize=fullScreen;&lt;/script&gt;<br />55.JS中的all代表其下层的全部元素</font></p><p style="margin: 1em 0px 0.5em; padding: 0px;"><font size="2">56.JS中的焦点顺序:<font style="background-color: rgb(255, 255, 153);">document.getElementByid(&quot;表单元素&quot;).tabIndex = 1</font><br />57.innerHTML的值是表单元素的值:如&lt;p id=&quot;para&quot;&gt;&quot;how are &lt;em&gt;you&lt;/em&gt;&quot;&lt;/p&gt;,则innerHTML的值就是:how are &lt;em&gt;you&lt;/em&gt;<br />58.innerTEXT的值和上面的一样,只不过不会把&lt;em&gt;这种标记显示出来.<br />59.contentEditable可设置元素是否可被修改,isContentEditable返回是否可修改的状态.<br />60.isDisabled判断是否为禁止状态.disabled设置禁止状态<br />61.<font style="background-color: rgb(255, 255, 153);">length取得长度,返回整型数值</font><br />62.addBehavior()是一种JS调用的外部函数文件其扩展名为.htc<br />63.<font style="background-color: rgb(255, 255, 153);">window.focus()使当前的窗口在所有窗口之前.</font><br />64.blur()指失去焦点.与FOCUS()相反.<br />65.select()指元素为选中状态.<br />66.<font style="background-color: rgb(255, 255, 153);">防止用户对文本框中输入文本:onfocus=&quot;this.blur()&quot;</font><br />67.取出该元素在页面中出现的数量:<font style="background-color: rgb(255, 255, 153);">document.all.tags(&quot;div(或其它HTML标记符)&quot;).length</font><br />68.JS中分为两种窗体输出:模态和非模态.window.showModaldialog(),window.showModeless()<br />69.状态栏文字的设置:window.status='文字',默认的状态栏文字设置:window.defaultStatus = '文字.';<br />70.添加到收藏夹:<font style="background-color: rgb(255, 255, 153);">external.AddFavorite(&quot;</font></font><a href="http://www.xrss.cn&quot;,&quot;jaskdlf/" style="text-decoration: none; color: rgb(0, 0, 0);"><font size="2" style="background-color: rgb(255, 255, 153);">http://www.xrss.cn&quot;,&quot;jaskdlf</font></a><font size="2"><font style="background-color: rgb(255, 255, 153);">&quot;);<br /></font>71.JS中遇到脚本错误时不做任何操作:<font style="background-color: rgb(255, 255, 153);">window.onerror = doNothing</font>; 指定错误句柄的语法为:window.onerror = handleError;<br />72.JS中指定当前打开窗口的父窗口:window.opener,支持opener.opener...的多重继续.<br />73.JS中的self指的是当前的窗口<br />74.JS中状态栏显示内容:window.status=&quot;内容&quot;<br />75.<font style="background-color: rgb(255, 255, 153);">JS中的top指的是框架集中最顶层的框架</font><br />76.JS中关闭当前的窗口:window.close();<br />77.JS中提出是否确认的框:if(confirm(&quot;Are you sure?&quot;)){alert(&quot;ok&quot;);}else{alert(&quot;Not Ok&quot;);}<br />78.JS中的窗口重定向:window.navigate(&quot;</font><a href="http://www.sina.com.cn/" style="text-decoration: none; color: rgb(0, 107, 173);"><font size="2">http://www.sina.com.cn</font></a><font size="2">&quot;);<br />79.JS中的打印:<font style="background-color: rgb(255, 255, 153);">window.print()</font><br />80.JS中的提示输入框:window.prompt(&quot;message&quot;,&quot;defaultReply&quot;);<br />81.JS中的窗口滚动条:window.scroll(x,y)<br />82.JS中的窗口滚动到位置:window.scrollby<br />83.JS中设置时间间隔:setInterval(&quot;expr&quot;,msecDelay)或setInterval(funcRef,msecDelay)或setTimeout<br />84.JS中的模态显示在IE4+行,在NN中不行:showModalDialog(&quot;URL&quot;[,arguments][,features]);<br />85.JS中的退出之前使用的句柄:function verifyClose(){event.returnValue=&quot;we really like you and hope you will stay longer.&quot;;}}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; window.onbeforeunload=verifyClose;<br />86.当窗体第一次调用时使用的文件句柄:onload()<br />87.当窗体关闭时调用的文件句柄:onunload()<br />88.window.location的属性: protocol(http:),hostname(</font><a href="http://www.example.com),port(80),host(www.example.com/a/a.html%22),hash(%22#giantGizmo" style="text-decoration: none; color: rgb(0, 0, 0);"><font size="2">www.example.com),port(80),host(www.example.com:80),pathname(&quot;/a/a.html&quot;),hash(&quot;#giantGizmo</font></a><font size="2">&quot;,指跳转到相应的锚记),href(全部的信息)<br />89.<font style="background-color: rgb(255, 255, 153);">window.location.reload()刷新当前页面.<br /></font>89-1<font style="background-color: rgb(255, 255, 153);">.parent.location.reload()刷新父亲对象（用于框架）</font><br />89-2.<font style="background-color: rgb(255, 255, 153);">opener.location.reload()刷新父窗口对象（用于单开窗口）<br /></font>89-3<font style="background-color: rgb(255, 255, 153);">.top.location.reload()刷新最顶端对象（用于多开窗口）<br /></font>90.window.history.back()返回上一页,window.history.forward()返回下一页,window.history.go(返回第几页,也可以使用访问过的URL)<br />91.<font style="background-color: rgb(255, 255, 153);">document.write()不换行的输出,document.writeln()换行输出</font><br />92.document.body.noWrap=true;防止链接文字折行.<br />93.变量名.charAt(第几位),取该变量的第几位的字符.<br />94.&quot;abc&quot;.charCodeAt(第几个),返回第几个字符的ASCii码值.<br />95.字符串连接:string.concat(string2),或用+=进行连接<br />96.变量.indexOf(&quot;字符&quot;,起始位置),返回第一个出现的位置(从0开始计算)<br />97.string.lastIndexOf(searchString[,startIndex])最后一次出现的位置.<br />98.string.match(regExpression),判断字符是否匹配.<br />99.string.replace(regExpression,replaceString)替换现有字符串.<br />100.string.split(分隔符)返回一个数组存储值.<br />101.string.substr(start[,length])取从第几位到指定长度的字符串.<br />102.string.toLowerCase()使字符串全部变为小写.<br />103.string.toUpperCase()使全部字符变为大写.<br />104.parseInt(string[,radix(代表进制)])强制转换成整型.<br />105.parseFloat(string[,radix])强制转换成浮点型.<br />106.<font style="background-color: rgb(255, 255, 153);">isNaN(变量):测试是否为数值型.<br /></font>107.定义常量的关键字:<font style="background-color: rgb(255, 255, 153);">const,</font>定义变量的关键字:var</font></p></span></span></p>]]></description><category>前端开发</category><comments>http://zihan.cn/post/48.htm#comment</comments><wfw:comment>http://zihan.cn/</wfw:comment><wfw:commentRss>http://zihan.cn/feed.asp?cmt=48</wfw:commentRss><trackback:ping>http://zihan.cn/cmd.asp?act=tb&amp;id=48&amp;key=6c156f16</trackback:ping></item><item><title>Ie和firefox的Js区别 </title><author>a@b.com (zihan)</author><link>http://zihan.cn/post/47.htm</link><pubDate>Thu, 25 Feb 2010 18:17:28 +0800</pubDate><guid>http://zihan.cn/post/47.htm</guid><description><![CDATA[<p><span style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Simsun; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;" class="Apple-style-span"><span style="font-family: verdana,sans-serif; font-size: 14px; line-height: 21px; text-align: left;" class="Apple-style-span"><p style="margin: 1em 0px 0.5em; padding: 0px;"><span style="line-height: 18px; font-size: 12px;">1.<span class="Apple-converted-space">&nbsp;</span><font color="#000000">对象</font>问题<span class="Apple-converted-space">&nbsp;</span><br />1.1 Form对象<span class="Apple-converted-space">&nbsp;</span><br />现有问题：<br />现有<font color="#000000">代码</font>这获得form对象通过document.forms(&quot;formName&quot;)，这样使用在IE 能接受，MF 不能。<br />解决<font color="#000000">方法：</font><br />改用 作为下<a style="text-decoration: none; color: rgb(0, 0, 0);" name="baidusnap4"></a>标运算。改为document.forms[&quot;formName&quot;]<br />备注<br />上述的改用 作为下标运算中的formName是id而name<br /><br />1.2<span class="Apple-converted-space">&nbsp;</span><font color="#000000">HTML</font>对象<span class="Apple-converted-space">&nbsp;</span><br />现有问题：<br />在 IE 中，HTML 对象的 ID 可以作为 document 的下</span><span style="line-height: 18px; font-size: 12px;">属对象变量名直接使用。在 MF 中不能。<br />document.all(&quot;itemName&quot;)或者document.all(&quot;itemId&quot;)<br />解决方法：<br />使用对象ID作为对象变量名<br />document.getElementById(&quot;itemId&quot;)<br />备注<br />document.all是IE自定义的方法，所以请大家尽量不使用。<br />还有一种方式，在IE和MF都可以使用<br />var f = document.forms[&quot;formName &quot;];<br />var o = f. itemId;<br /><br />1.3 DIV对象<span class="Apple-converted-space">&nbsp;</span><br />现有问题：<br />在 IE 中，DIV对象可以使用ID作为对象变量名直接使用。在 MF 中不能。<br />DivId.style.display = &quot;none&quot;<br />解决方法：<br />document.getElementById(&quot;DivId&quot;).style.display = &quot;none&quot;<br />备注<br />获得对象的方法不管是不是DIV对象，都使用getElementById方法。参见1.2<br /><br /><br />1.4 关于frame<span class="Apple-converted-space">&nbsp;</span><br />现有问题<br />在 IE中 可以用window.testFrame取得该frame，mf中不行<br />解决方法<br />在frame的使用方面MF和IE的最主要的区别<a style="text-decoration: none; color: rgb(0, 0, 0);" name="baidusnap6"></a>是：<br />如果在frame标签中书写了以下属性：<br /><br />那么IE可以通过id或者name访问这个frame对应的window对象<br />而mf只可以通过name来访问这个frame对应的window对象<br />例如如果上述frame标签写在最上层的window里面的htm里面，那么可以这样访问<br />IE： window.top.frameId或者window.top.frameName来访问这个window对象<br />MF：只能这样window.top.frameName来访问这个window对象<br />另外，在mf和ie中都可以使用window.top.document.getElementById(&quot;frameId&quot;)来访问frame标签<br />并且可以通过window.top.document.getElementById(&quot;testFrame&quot;).src = 'xx.htm'来切换frame的内容<br />也都可以通过window.top.frameName.location = 'xx.htm'来切换frame的内容<br /><br />1.5 窗口<span class="Apple-converted-space">&nbsp;</span><br />现有问题<br />IE中可以通过showModalDialog和showModelessDialog打开模态和非模态窗口，但是MF不支持。<br />解决办法<br />直接使用window.open(pageURL,name,parameters)方式打开新窗口。<br />如果需要传递参数，可以使用frame或者iframe。<br /><br />2. 总结<span class="Apple-converted-space">&nbsp;</span><br />2.1 在JS中定义各种对象变量名时，尽量使用id，避免使用name。<span class="Apple-converted-space">&nbsp;</span><br />在 IE 中，HTML 对象的 ID 可以作为 document 的下属对象变量名直接使用。在 MF 中不能，所以在平常使用时请尽量使用id，避免只使用name，而不使用id。<br /><br />2.2 变量名与某 HTML 对象 id 相同的问题<span class="Apple-converted-space">&nbsp;</span><br />现有问题<br />在 MF 中，因为对象 id 不作为 HTML 对象的名称，所以可以使用与 HTML 对象 id 相同的变量名，IE 中不能。<br />解决方法<br />在声明变量时，一律加上 var ，以避免歧义，这样在 IE 中亦可正常运行。<br />此外，最好不要取与 HTML 对象 id 相同的变量名，以减少错误。<br /><br /><br />1. document.all<br />&nbsp;&nbsp; Firefox可以兼容document.all， 但会生成一条警告。可以用getElementById(&quot;*&quot;) 或者 getElementByTagName(&quot;*)来代替<br />&nbsp;&nbsp; 不过对于document.all.length等属性，则完全不兼容。<br />2. parentElement<br />&nbsp;&nbsp; 这个也不兼容。比方说， obj.parentElement.name 则应改成 obj.parentNode.attributes.getNamedItem(&quot;name&quot;).nodeValue （不知道如何写得更简洁些）<br />3. event<br />&nbsp;&nbsp; W3C不支持windows.event<br />&nbsp;&nbsp; 比方说:<span class="Apple-converted-space">&nbsp;</span><br />在IE里面<br />&nbsp;&nbsp; &nbsp;&nbsp; &lt;div class=&quot;menu&quot; id=&quot;menu&quot; ōnclick=&quot;onMenuClick(); &quot;&gt;.....&lt;/div&gt;<br />&nbsp;&nbsp; function onMenuClick()<br />&nbsp;&nbsp; {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; collapseMenu(event.srcElement);<br />&nbsp;&nbsp; }<span class="Apple-converted-space">&nbsp;</span><br /><font color="#000000">工作</font>正常。不过在Firefox中，则改成：<br /><br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;div class=&quot;menu&quot; id=&quot;menu&quot; ōnclick=&quot;onMenuClick(event); &quot;&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; function onMenuClick(evt)<br />&nbsp;&nbsp; {<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if(evt == null)<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; evt = window.event; // For IE<br />&nbsp;&nbsp; &nbsp;&nbsp; var srcElement = evt.srcElement? evt.srcElement : evt.target; // IE使用srcElement, 而Firefox使用target<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; collapseMenu(srcElement);<br />}<br /><br /><br />IE和FIREFOX在解析<font color="#000000">CSS</font>方面的区别<br />对高度的解析<span class="Apple-converted-space">&nbsp;</span><br />IE：将根据内容的高度变化，包括未定义高度的图片内容，即使定义了高度，当内容超过高度时，将使用实际高度<span class="Apple-converted-space">&nbsp;</span><br /><br />Firefox：没有定义高度时，如果内容中包括了图片内容，MF的高度解析是根据印刷标准，这样就会造成和实际内容高度不符合的情况；当定义了高度，但是内容超过高度时，内容会超出定义的高度，但是区域使用的样式不会变化，造成样式错位。<span class="Apple-converted-space">&nbsp;</span><br /><br />结论：大家在可以确定内容高度的情况下最好定义高度，如果真的没有办法定义高度，最好不用使用边框样式，否则样式肯定会出现混乱！<span class="Apple-converted-space">&nbsp;</span><br /><br />img对象alt和title的解析<span class="Apple-converted-space">&nbsp;</span><br />alt：当照片不存在或者load错误时的提示；<span class="Apple-converted-space">&nbsp;</span><br /><br />title：照片的tip说明。<span class="Apple-converted-space">&nbsp;</span><br /><br />在IE中如果没有定义title，alt也可以作为img的tip使用，但是在MF中，两者完全按照标准中的定义使用<span class="Apple-converted-space">&nbsp;</span><br /><br />结论：大家在定义img对象时，最后将alt和title对象都写全，保证在各种浏览器中都能正常使用<span class="Apple-converted-space">&nbsp;</span><br /><br />其他的细节差别<span class="Apple-converted-space">&nbsp;</span><br /><br />当你在写css的时候，特别是用float: left（或right）排列一窜图片时，会发现在firefox里面正常而IE里面有问题。无论你用margin:0,还是border: 0来约束，都无济于事。<span class="Apple-converted-space">&nbsp;</span><br /><br />其实这里还有另外一个问题，就是IE对于空格的处理，firefox是忽略的而IE对于块与块之间的空格是处理的。也就是说一个div结束后要紧接着一个div写，中间不要有回车或者空格。不然也许会有问题，比如3px的偏差，而且这个原因很难发现。<span class="Apple-converted-space">&nbsp;</span><br /><br />非常不走运的是我又碰到了这样的问题，多个img标签连着，然后定义的float: left，希望这些图片可以连起来。但是结果在firefox里面正常而IE里面显示的每个img都相隔了3px。我把标签之间的空格都删除都没有作用。<span class="Apple-converted-space">&nbsp;</span><br /><br />后来的解决方法是在img外面套li，并且对li定义margin: 0，这样就解决了IE和firefox的显示偏差。IE对于一些模型的解释会产生很多错误问题，只有多多尝试才能发现原因。<span class="Apple-converted-space">&nbsp;</span><br /><br />这只是一些简单的区别,在做布局和CSS设计时候可以综合考虑,但最为有效与简单的解决兼容问题还是用TABLE表格,表格在兼容性方面有着不错的表现.<span class="Apple-converted-space">&nbsp;</span><br /><br />另外在模版的JS设计的时候也需要考虑两者对代码的兼容,以下是对IE与FIREFOX中JS的一些测试:<span class="Apple-converted-space">&nbsp;</span><br /><br />以下以 IE 代替<span class="Apple-converted-space">&nbsp;</span><font color="#000000">Internet</font><span class="Apple-converted-space">&nbsp;</span>Explorer，以 MF 代替 Mozilla Firefox<span class="Apple-converted-space">&nbsp;</span><br /><br />1. document.form.item 问题<br />(1)现有问题：<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 现有代码中存在许多 document.formName.item(&quot;itemName&quot;) 这样的语句，不能<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 在 MF 下运行<br />(2)解决方法：<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 改用 document.formName.elements[&quot;elementName&quot;]<br />(3)其它<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 参见 2<span class="Apple-converted-space">&nbsp;</span><br /><br />2. 集合类对象问题<br />(1)现有问题：<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 现有代码中许多集合类对象取用时使用 ()，IE 能接受，MF 不能。<br />(2)解决方法：<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 改用 [] 作为下标运算。如：document.forms(&quot;formName&quot;) 改为<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; document.forms[&quot;formName&quot;]。<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 又如：document.getElementsByName(&quot;inputName&quot;)(1) 改为<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; document.getElementsByName(&quot;inputName&quot;)[1]<br />(3)其它<span class="Apple-converted-space">&nbsp;</span><br /><br />3. window.event<br />(1)现有问题：<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 使用 window.event 无法在 MF 上运行<br />(2)解决方法：<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; MF 的 event 只能在事件发生的现场使用，此问题暂无法解决。可以这样变通：<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 原代码(可在IE中运行)：<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &lt;input type=&quot;button&quot; name=&quot;someButton&quot; value=&quot;提交&quot;<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; onclick=&quot;javascrīpt:gotoSubmit()&quot;/&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; ...<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &lt;scrīpt language=&quot;javascrīpt&quot;&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; function gotoSubmit() {<br />&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; alert(window.event); // use window.event<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ...<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; }<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &lt;/scrīpt&gt;<span class="Apple-converted-space">&nbsp;</span><br /><br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 新代码(可在IE和MF中运行)：<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &lt;input type=&quot;button&quot; name=&quot;someButton&quot; value=&quot;提交&quot;<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; onclick=&quot;javascrīpt:gotoSubmit(event)&quot;/&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; ...<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &lt;scrīpt language=&quot;javascrīpt&quot;&gt;<br />&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; evt = evt ? evt : (window.event ? window.event : null);<br />&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; alert(evt); &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; // use evt<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ...<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; }<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &lt;/scrīpt&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 此外，如果新代码中第一行不改，与老代码一样的话(即 gotoSubmit 调用没有给<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 参数)，则仍然只能在IE中运行，但不会出错。所以，这种方案 tpl 部分仍与老<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 代码兼容。<span class="Apple-converted-space">&nbsp;</span><br /><br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ///////////////////////////////////////////////////////////////////////<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // 以下来自网友 llihua &nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; //事件处理函数<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; function a(evt) { //FireFox<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; evt = evt? evt: window.event; //IE<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; var srcElem = (evt.target)? evt.target: evt.srcElement;<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; //事件处理...<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; }<br /><br />在连接事件处理函数的时候，可以用Inline HTML方式，也可以用Event<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; property方式定义。<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; 1、使用Inline HTML方式，如：<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &lt;input type=&quot;radio&quot; name=&quot;radio&quot; value=&quot;1&quot;<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; onclick=&quot;javascrīpt:a(event)&quot;&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&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; (1)javascrīpt不能省；<br />&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;<span class="Apple-converted-space">&nbsp;</span><br />&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; document.form2.radio[0].onclick = a;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; // 以上来自网友 llihua &nbsp;&nbsp;<span class="Apple-converted-space">&nbsp;</span><br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ///////////////////////////////////////////////////////////////////////<span class="Apple-converted-space">&nbsp;</span><br /><br />4. HTML 对象的 id 作为对象名的问题<br />(1)现有问题<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 在 IE 中，HTML 对象的 ID 可以作为 document 的下<font color="#000000">属</font>对象变量名直接使用。在<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; MF 中不能。<br />(2)解决方法<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 用 getElementById(&quot;idName&quot;) 代替 idName 作为对象变量使用。<span class="Apple-converted-space">&nbsp;</span><br /><br />5. 用idName字符串取得对象的问题<br />(1)现有问题<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 在IE中，利用 eval(idName) 可以取得 id 为 idName 的 HTML 对象，在MF 中不<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 能。<br />(2)解决方法<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 用 getElementById(idName) 代替 eval(idName)。<span class="Apple-converted-space">&nbsp;</span><br /><br />6. 变量名与某 HTML 对象 id 相同的问题<br />(1)现有问题<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 在 MF 中，因为对象 id 不作为 HTML 对象的名称，所以可以使用与 HTML 对象<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; id 相同的变量名，IE 中不能。<br />(2)解决方法<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 在声明变量时，一律加上 var ，以避免歧义，这样在 IE 中亦可正常运行。<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 此外，最好不要取与 HTML 对象 id 相同的变量名，以减少错误。<br />(3)其它<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 参见 问题4<span class="Apple-converted-space">&nbsp;</span><br /><br />7. event.x 与 event.y 问题<br />(1)现有问题<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 在IE 中，event 对象有 x, y 属性，MF中没有。<br />(2)解决方法<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 在MF中，与event.x 等效的是 event.pageX。但event.pageX IE中没有。<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 故采用 event.clientX 代替 event.x。在IE 中也有这个变量。<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; event.clientX 与 event.pageX 有微妙的差别（当整个页面有滚动条的时候），<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 不过大多数时候是等效的。<span class="Apple-converted-space">&nbsp;</span><br /><br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 如果要完全一样，可以稍麻烦些：<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; mX = event.x ? event.x : event.pageX;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; 然后用 mX 代替 event.x<br />(3)其它<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; event.layerX 在 IE 与 MF 中都有，具体意义有无差别尚未试验。<span class="Apple-converted-space">&nbsp;</span><br /><br /><br />8. 关于frame<br />(1)现有问题<br />&nbsp;&nbsp; &nbsp;&nbsp; 在 IE中 可以用window.testFrame取得该frame，mf中不行<br />(2)解决方法<br />&nbsp;&nbsp; &nbsp;&nbsp; 在frame的使用方面mf和ie的最主要的区别是：<br />&nbsp;&nbsp; &nbsp;&nbsp; 如果在frame标签中书写了以下属性：<br />&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; 那么ie可以通过id或者name访问这个frame对应的window对象<br />&nbsp;&nbsp; &nbsp;&nbsp; 而mf只可以通过name来访问这个frame对应的window对象<br />&nbsp;&nbsp; &nbsp;&nbsp; 例如如果上述frame标签写在最上层的window里面的htm里面，那么可以这样访问<br />&nbsp;&nbsp; &nbsp;&nbsp; ie： window.top.frameId或者window.top.frameName来访问这个window对象<br />&nbsp;&nbsp; &nbsp;&nbsp; mf： 只能这样window.top.frameName来访问这个window对象<span class="Apple-converted-space">&nbsp;</span><br /><br />&nbsp;&nbsp; &nbsp;&nbsp; 另外，在mf和ie中都可以使用<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; window.top.document.getElementById(&quot;frameId&quot;)<br />&nbsp;&nbsp; &nbsp;&nbsp; 来访问<br />&nbsp;&nbsp; &nbsp;&nbsp; frame标签<br />&nbsp;&nbsp; &nbsp;&nbsp; 并且可以通过<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; window.top.document.getElementById(&quot;testFrame&quot;).src = 'xx.htm'<br />&nbsp;&nbsp; &nbsp;&nbsp; 来切换frame的内容<br />&nbsp;&nbsp; &nbsp;&nbsp; 也都可以通过window.top.frameName.location = 'xx.htm'来切换frame的内容<br />&nbsp;&nbsp; &nbsp;&nbsp; 关于frame和window的描述可以参见bbs的&lsquo;window与frame&rsquo;文章<br />&nbsp;&nbsp; &nbsp;&nbsp; 以及/test/js/test_frame/目录下面的测试<br />&nbsp;&nbsp; &nbsp;&nbsp; ----adun 2004.12.09修改<span class="Apple-converted-space">&nbsp;</span><br /><br />9. 在mf中，自己定义的属性必须getAttribute()取得<br />10.在mf中没有&nbsp;&nbsp; parentElement parement.children&nbsp;&nbsp; 而用<br />&nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; parentNode parentNode.childNodes<br />childNodes的下标的含义在IE和MF中不同，MF使用DOM规范，childNodes中会插入空白<br />文本节点。<br />&nbsp;&nbsp; 一般可以通过node.getElementsByTagName()来回避这个问题。<br />当html中节点缺失时，IE和MF对parentNode的解释不同，例如<br />&lt;form&gt;<br />&lt;table&gt;<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &lt;input/&gt;<br />&lt;/table&gt;<br />&lt;/form&gt;<br />MF中input.parentNode的值为form, 而IE中input.parentNode的值为空节点<span class="Apple-converted-space">&nbsp;</span><br /><br />MF中节点没有removeNode方法，必须使用如下方法<br />node.parentNode.removeChild(node)<span class="Apple-converted-space">&nbsp;</span><br /><br />11.const 问题<br />&nbsp;&nbsp; (1)现有问题:<br />&nbsp;&nbsp;&nbsp; 在 IE 中不能使用 const 关键字。如 const constVar = 32;<br />&nbsp;&nbsp;&nbsp; 在IE中这是语法错误。<br />&nbsp;&nbsp; (2)解决方法:<br />&nbsp;&nbsp;&nbsp; 不使用 const ，以 var 代替。<span class="Apple-converted-space">&nbsp;</span><br /><br />12. body 对象<br />MF的body在body标签没有被浏览器完全读入之前就存在，而IE则必须在body完全被读入<br />之后才存在<span class="Apple-converted-space">&nbsp;</span><br /><br />13. url encoding<br />在js中如果书写url就直接写&amp;不要写&amp;例如<br />&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; var url = 'xx.jsp?objectName=xx&amp;objectEvent=xxx';<br />frm.action = url那么很有可能url不会被正常显示以至于参数没有正确的传到服务器<br />一般会服务器报错参数没有找到<br />当然如果是在tpl中例外，因为tpl中符合<font color="#000000">xml</font>规范，要求&amp;书写为&amp;<br />一般MF无法识别js中的&amp;<span class="Apple-converted-space">&nbsp;</span><br /><br /><br />14. nodeName 和 tagName 问题<br />&nbsp;&nbsp; (1)现有问题：<br />&nbsp;&nbsp;&nbsp; 在MF中，所有节点均有 nodeName 值，但 textNode 没有 tagName 值。在 IE 中，<br />&nbsp;&nbsp;&nbsp; nodeName 的使用好象<br />&nbsp;&nbsp;&nbsp; 有问题（具体情况没有测试，但我的IE已经死了好几次）。<br />&nbsp;&nbsp; (2)解决方法：<br />&nbsp;&nbsp;&nbsp; 使用 tagName，但应检测其是否为空。<span class="Apple-converted-space">&nbsp;</span><br /><br />15. 元素属性<br />IE下 input.type属性为只读，但是ME下可以修改<span class="Apple-converted-space">&nbsp;</span><br /><br /><br />16. document.getElementsByName() 和 document.all[name] 的问题<br />&nbsp;&nbsp; (1)现有问题：<br />&nbsp;&nbsp;&nbsp; 在 IE 中，getElementsByName()、document.all[name] 均不能用来取得 div 元素<br />&nbsp;&nbsp;&nbsp; （是否还有其它不能取的元素还不知道）。<span class="Apple-converted-space">&nbsp;</span><br /><br />17. DOM 数据岛的问题<br />&nbsp;&nbsp; (1)现有问题<br />&nbsp;&nbsp;&nbsp; 在IE中, &lt;xml&gt;标签具有特殊意义, 可以内含XML DOM, 并能实现与HTML组件的数据<br />&nbsp;&nbsp;&nbsp; 绑定. 在MF中,&lt;xml&gt;则仅仅是一个未知的标记而已.<br />&nbsp;&nbsp;&nbsp; 另外, 对 IE 来说, &lt;xml&gt;实际意味着这里是一个ActiveX对象, 但它却挂在HTML本<br />&nbsp;&nbsp;&nbsp; 身的DOM树下作为一个节点, 因而会对DOM树的遍历造成严重影响.<br />&nbsp;&nbsp; (2)解决方法<br />&nbsp;&nbsp;&nbsp; IE的数据绑定机制是可以用JS来模拟的, 但是太麻烦, 建议不使用数据绑定机制或者<br />&nbsp;&nbsp;&nbsp; 寻找实现这种模拟的库来做. 我们只讨论如何实现DOM的兼容.<br />&nbsp;&nbsp;&nbsp; 在MF中无论已知的HTML标记还是其它符合XML规范的标记, 都是用统一的DOM树来处理<br />&nbsp;&nbsp;&nbsp; 的, 因此, MF事实上完全可以使用DOM数据岛,<span class="Apple-converted-space">&nbsp;</span><font style="background-color: rgb(255, 255, 255);">但与IE小小的不同在于: 在IE中&lt;xml&gt;<br />&nbsp;&nbsp;&nbsp; 是个 DOM document, 而在MF只是 DOM node. 这个差别通常不足为患.</font><br />&nbsp;&nbsp;&nbsp; 但是有一个小小的细节, 为了兼容HTML相当随意的语法, MF无法识别简写的空标记.<br />&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; 这其中&lt;content/&gt;和&lt;index/&gt;是简写形式的, 会使MF无法识别, 应当写成:<br />&nbsp;&nbsp; &nbsp;&nbsp; &lt;content&gt;&lt;/content&gt;&lt;index&gt;&lt;/index&gt;<br />&nbsp;&nbsp;&nbsp; 不过, 我怀疑如果用XHTML, 可能就没有这种问题. 但我还没有试过.<br />&nbsp;&nbsp;&nbsp; 对于IE中&lt;xml&gt;干扰HTML的DOM结构问题, 我现在的方法是处理完毕后把它从HTML的<br />&nbsp;&nbsp;&nbsp; DOM中删除. 不知道还有没有更好的解</span></p><p style="margin: 1em 0px 0.5em; padding: 0px;">&nbsp;</p><p style="margin: 1em 0px 0.5em; padding: 0px;">&nbsp;</p><p style="margin: 1em 0px 0.5em; padding: 0px;">&nbsp;</p><p style="margin: 1em 0px 0.5em; padding: 0px;"><span style="line-height: 28px; font-size: 14pt;"><strong>FireFox与IE开发上的一些区别</strong></span></p><p style="margin: 1em 0px 0.5em; padding: 0px;">&nbsp;</p><p style="margin: 1em 0px 0.5em; padding: 0px;">&nbsp;</p><span style="font-size: 12px;"><p style="margin: 1em 0px 0.5em; padding: 0px; line-height: normal;">1. window.event<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />* IE：有window.event对象<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />* FF：没有window.event对象。可以通过给函数的参数传递event对象。如onmousemove=doMouseMove(event)<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />2. 鼠标当前坐标<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />* IE：event.x和event.y。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />* FF：event.pageX和event.pageY。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />* 通用：两者都有event.clientX和event.clientY属性。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />3. 鼠标当前坐标(加上滚动条滚过的距离)<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />* IE：event.offsetX和event.offsetY。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />* FF：event.layerX和event.layerY。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />4. 标签的x和y的坐标位置：style.posLeft 和 style.posTop<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />* IE：有。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />* FF：没有。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />* 通用：object.offsetLeft 和 object.offsetTop。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />5. 窗体的高度和宽度<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />* IE：document.body.offsetWidth和document.body.offsetHeight。注意：此时页面一定要有body标签。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />* FF：window.innerWidth和window.innerHegiht，以及 document.documentElement.clientWidth和 document.documentElement.clientHeight。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />* 通用：document.body.clientWidth和document.body.clientHeight。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />6. 添加事件<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />* IE：element.attachEvent(&quot;onclick&quot;, func);。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />* FF：element.addEventListener(&quot;click&quot;, func, true)。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />* 通用：element.onclick=func。虽然都可以使用onclick事件，但是onclick和上面两种方法的效果是不一样的， onclick 只有执行一个过程，而attachEvent和addEventListener执行的是一个过程列表，也就是多个过程。例如： element.attachEvent(&quot;onclick&quot;, func1);element.attachEvent(&quot;onclick&quot;, func2)这样func1和func2都会被执行。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />7. 标签的自定义属性<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />* IE：如果给标签div1定义了一个属性value，可以div1.value和div1[&quot;value&quot;]取得该值。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />* FF：不能用div1.value和div1[&quot;value&quot;]取。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />* 通用：div1.getAttribute(&quot;value&quot;)。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />8. 父节点、子节点和删除节点<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />* IE：parentElement、parement.children，element.romoveNode(true)。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />* FF：parentNode、parentNode.childNodes，node.parentNode.removeChild(node)。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />9. 画图<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />* IE：VML。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />* FF：SVG。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />10. CSS：透明<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />* IE：filter:progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=60)。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />* FF：opacity:0.6。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />11. CSS：圆角<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />* IE：不支持圆角。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />* FF： -moz-border-radius:4px，或者-moz-border-radius-topleft:4px;-moz-border- radius-topright:4px;-moz-border-radius-bottomleft:4px;-moz-border-radius- bottomright:4px;。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />12. CSS：双线凹凸边框<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" /><br style="line-height: normal;" />* IE：border:2px outset;。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />* FF： -moz-border-top-colors: #d4d0c8 white;-moz-border-left-colors: #d4d0c8 white;-moz-border-right-colors:#404040 #808080;-moz-border-bottom-colors:#404040 #808080;。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />13. 其它（待整理）<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />FireFox: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />FireFox: body 设置 text-align 时, div 需要设置 margin: auto(主要是 margin-left,margin-right) 方可居中<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />FireFox: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 width<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />FireFox: 支持 !important, IE 则忽略, 可用 !important 为　FireFox 特别设置样式<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />div 的垂直居中问题: vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字，就垂直居中了。缺点是要控制内容不要换行<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />cursor: pointer 可以同时在 IE　FireFox 中显示游标手指状， hand 仅 IE 可以<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />FireFox: 链接加边框和背景色，需设置 display: block, 同时设置 float: left 保证不换行。参照 menubar, 给 a 和 menubar 设置高度是为了避免底边显示错位, 若不设 height, 可以在 menubar 中插入一个空格<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />XHTML+CSS兼容性解决方案小集<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />使用XHTML＋CSS构架好处不少，但也确实存在一些问题，不论是因为使用不熟练还是思路不清晰，我就先把一些我遇到的问题写在下面:<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />1.在mozilla firefox和IE中的BOX模型解释不一致导致相差2px解决方法：<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />div{margin:30px!important;margin:28px;}注意这两个margin的顺序一定不能写反，据阿捷的说法!important这个属性IE不能识别，但别的浏览器可以识别。所以在IE下其实解释成这样：<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />div{maring:30px;margin:28px}重复定义的话按照最后一个来执行，所以不可以只写margin:XXpx!important;<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><a style="text-decoration: none; color: rgb(70, 65, 45); font-size: 12px; line-height: 20px;" target="new" href="http://bbs.itokit.com/"><font color="#ffffff" style="line-height: normal;">http://bbs.itokit.com/</font></a><font color="#ffffff" style="line-height: normal;"><span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span>专业的web开发交流论坛</font><span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />2.IE5 和IE6的BOX解释不一致IE5下div{width:300px;margin:0 10px 0 10px;}div的宽度会被解释为300px-10px(右填充)-10px(左填充)最终div的宽度为280px，而在IE6和其他浏览器上宽度则是以300px+10px(右填充)+10px(左填充)=320px来计算的。这时可以做如下修改<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />div{width:300px!important;width　/**/:340px;margin:0　10px　0　10px}<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />3.ul标签在Mozilla中默认是有padding值的,而在IE中只有margin有值所以先定义<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />ul{margin:0;padding:0;}就能解决大部分问题<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />4.关于脚本，在xhtml1.1中不支持language属性，只需要把代码改为<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />&lt;script　type=&rdquo;text/javascript&rdquo;&gt;<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />FireFox: div 设置 margin-left, margin-right 为 auto 时已经居中, IE 不行<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />IE怎么不行? .div{width:100px;margin:0 auto;}一样居中<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />FireFox: 设置 padding 后, div 会增加 height 和 width, 但 IE 不会, 故需要用 !important 多设一个 height 和 width<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />这个是ie对css盒模型解释有问题造成的,只能迁就它网页教学网<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />FireFox: 支持 !important, IE 则忽略, 可用 !important 为　FireFox 特别设置样式<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />IE7 一样兼容 !important 了<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />cursor: pointer 可以同时在 IE　FireFox 中显示游标手指状， hand 仅 IE 可以<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />pointer是标准的写法,hand是ie6之前版本自行定义的<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />补充:<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />ie6有margin双倍外补丁bug,需要做css .hack<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />firefox更符合标准,在浮动和清除浮动上需要特别注意,而ie容错性比较好<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />ie中height小于一定值(可能是18px)时,可能会在页面上体现不出来,需要overflow:hidden;而firefox可以完全体现height;<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />装好ie6 ie7 ff2大致写个一两个页面就知道大概的不同了,其实不难<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />屏蔽IE浏览器（也就是IE下不显示）<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />*:lang(zh) select {font:12px　!important;} /*FF的专用*/<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />select:empty {font:12px　!important;} /*safari可见*/<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />这里select是选择符，根据情况更换。第二句是MAC上safari浏览器独有的。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />仅IE7识别<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />*+html　{&hellip;}<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />当面临需要只针对IE7做样式的时候就可以采用这个HACK。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />IE6及IE6以下识别<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />* html　{&hellip;}<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />这个地方要特别注意很多地主都写了是IE6的HACK其实IE5.x同样可以识别这个HACK。其它浏览器不识别。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />html/**/ &gt;body　select {&hellip;&hellip;}网页教学网<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />这句与上一句的作用相同。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />仅IE6不识别<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />select { display /*IE6不识别*/:none;}<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />这里主要是通过CSS注释分开一个属性与值，流释在冒号前。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />仅IE6与IE5不识别<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />select/**/ { display /*IE6,IE5不识别*/:none;}<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />这里与上面一句不同的是在选择符与花括号之间多了一个CSS注释。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />仅IE5不识别<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />select/*IE5不识别*/ { display:none;}<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />这一句是在上一句中去掉了属性区的注释。只有IE5不识别<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />盒模型解决方法<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />selct {width:IE5.x宽度; voice-family :&quot;&quot;}&quot;&quot;; voice-family:inherit; width:正确宽度;}<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />盒模型的清除方法不是通过!important来处理的。这点要明确。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />清除浮动<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />select:after {content:&quot;.&quot;; display:block; height:0; clear:both; visibility:hidden;}<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />在Firefox中，当子级都为浮动时，那么父级的高度就无法完全的包住整个子级，那么这时用这个清除浮动的HACK来对父级做一次定义，那么就可以解决这个问题 。<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" /><br style="line-height: normal;" />截字省略号<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />select { -o-text-overflow:ellipsis; text-overflow:ellipsis; white-space:nowrap; overflow:hidden; }<span style="line-height: 18px;" class="Apple-converted-space"><span class="Apple-converted-space">&nbsp;</span></span><br style="line-height: normal;" />这个是在越出长度后会自行的截掉多出部分的文字，并以省略号结尾，很好的一个技术。只是目前Firefox并不支持。</p><p style="margin: 1em 0px 0.5em; padding: 0px; line-height: normal;">&nbsp;</p><p style="margin: 1em 0px 0.5em; padding: 0px; line-height: normal;">&nbsp;</p><div class="gg_as"><h3 style="margin: 0px; padding: 0px;">XHTML：非IE浏览器里对style.height赋值无效的问题</h3><p style="margin: 1em 0px 0.5em; padding: 0px;">&nbsp;</p><p style="margin: 1em 0px 0.5em; padding: 0px;">今天我在做多页面MDI脚本控件（MzMultiPage），在IE等浏览器里都已经测试通过没有任何问题，但是在Mozilla、Firefox、Netscape里测试时问题就来了，我的多页面是在页面里用到了 iframe，这些 iframe 初始的 style.height 都是0，而在加载页面之后，iframe 就会自适应被加载的页面高度，我是通过 iframe.style.height=300 这样撑起 iframe 的高度，这样处理在IE系列浏览器里没有任何问题，但在非IE浏览器里死活行不通，通过跟踪，发现根本没有把这个 300 赋给 style.height，最后测试出来竟然必须给定赋值的单位，即 iframe.style.height=&quot;300px&quot;，这样赋值才有效，没有单位的赋值无效，郁闷了我老半天！</p><p style="margin: 1em 0px 0.5em; padding: 0px;">说明一下环境：我用的是XHTML的DTD，即在页面头上是：&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Transitional//EN&quot; &quot;<a style="text-decoration: none; color: rgb(0, 0, 0);" href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</a>&quot;&gt;，也正是因为这个 XHTML1.dtd 才导致非IE浏览器里的 style.height 有问题。</p><p style="margin: 1em 0px 0.5em; padding: 0px;">另外透露一点知识：在Netsacpe里的iframe，若通过设置 style.display=&quot;none&quot; 隐藏这个 iframe 的话，会把通过脚本动态写入到 iframe 的HTML&ldquo;冲掉&rdquo;。所以在 Netscape 里的 iframe 若有脚本写入HTML又需要动态隐藏/显示这个 iframe 的操作时建议你使用 style.width=&quot;0px&quot; style.height=&quot;0px&quot;; 这样的方式隐藏！</p></div></span></span></span></p>]]></description><category>前端开发</category><comments>http://zihan.cn/post/47.htm#comment</comments><wfw:comment>http://zihan.cn/</wfw:comment><wfw:commentRss>http://zihan.cn/feed.asp?cmt=47</wfw:commentRss><trackback:ping>http://zihan.cn/cmd.asp?act=tb&amp;id=47&amp;key=6048377f</trackback:ping></item></channel></rss>
