搂住有点极端了,呵呵。。这些问题在软件开发上面是很难避免的。同样是IE浏览器,搂住有没有是过把你的网页在苹果机上执行一边看看呢?
先不要说不同公司的浏览器吧,你试试看用IE for Windows和IE for MacOS来浏览一下你的同一个网页试试看。再举一个例子,你用Word写一篇文档(格式稍微复杂一点),然后拿到MacOS上的Word去试试看,
看看不是走样了?:D解决这些问题从目前来讲,只能依靠使用者的技巧来解决了,当然我们也希望各个厂商是用同一个标准,但是你没有想过,一旦使用了同一个标准,那么我们就会失去软件的多样性。还是好好想想怎么改进你的代码吧。:)

解决方案 »

  1.   

    有意识的考虑一下兼容是可取的,但也不要为了兼容其它浏览器而费太大的周折比较好的办法是用W3C标准,至于标准里没有而IE有自己简单的实现方法,当然要用了,呵呵
      

  2.   

    一般来讲在firefox上能正确执行的在别的浏览器上也都可以
    我们部门最近要求代码都要支持firefox网上有一篇《Javascript的IE和Firefox兼容性汇编》可以搜一下
      

  3.   

    http://home.donews.com/donews/article/8/88549.html
      

  4.   

    《Javascript的IE和Firefox兼容性汇编》看了,这些与html的相关属性,这到没什么的
    主要是有些正则表达式,还有函数中套函数之类的写法会出错,这才头痛的。
    比如gt3(get3(get4(n)))
      

  5.   

    楼主,我只能说你写的代码比较差了,若是严格按照W3C标准写的代码,还没有哪种浏览器不支持的,至于要修改浏览器之间的差异,在你的代码符合W3C标准的情况下,几乎没有什么地方需要你自己手工修正。建议楼主去持看DOM和CSS国际标准!
      

  6.   

    http://home.donews.com/donews/article/8/88549.html
    Firefox 1     14.00%  上面的测试数据不可信,我认识的几家公司,每个公司人数都有几百人,还有我的朋友,所知道的人里,好像除我测试过Firefox,没有听说有人在用Firefox看网页,用myie到是多得很。那上面超过八分之一的人用Firefox,这些人在哪?他们是什么行业的?firefox看网页的好处在哪?八分之一的人在做一点没好处,反是操作很麻烦的事情?
      

  7.   

    "我们原先写的JS代码本没有问题,而出来了Firefox却变成我们的代码有问题了,再出来一个新的浏览器呢,难道我们就又得再改自己的代码?"若是你的代码是国标的,哪里需要重复修改自己的代码?IE只不过是在W3C的标准之上再做了一些自己的功能扩充,但就这个国标来说,FF比IE理解的更为准确,JS脚本执行的效率更高。
      

  8.   

    回复 meizz(梅花雪), W3C标准里有讲到怎么写JS吗?有讲正则表达式的规范吗?有讲函数套函数是不充许用的吗?有讲JScript.Encoder不能用么,有名命名只能用name不充许用id么?什么都没有讲,W3C标准对于js来讲,没有意义!
      

  9.   

    严格按照W3C标准,而不是按照IE的标准写脚本代码,以不变应万变。
      

  10.   

    document.all
    Standards Information
      There is no public standard that applies to this collection. document.getElementById
    Standards Information
      This method is defined in World Wide Web Consortium (W3C) Document Object Model (DOM) Level 1 . 你自己去好好看看资料吧,有哪些东西W3C里没有明确标注??
      

  11.   

    W3C标准里有讲到怎么写JS吗?
        W3C的标准是DOM的标准而不是 JavaScript 语言的标准,JS语言的标准你可以另外去查询其标准规范有讲正则表达式的规范吗?
        至少我现在写的这些正则表达式在各种浏览器之间还没有出现过不兼容的现象有讲函数套函数是不充许用的吗?
        谁说函数套函数就不允许了?那只是你不会使用罢了。有讲JScript.Encoder不能用么,
        你自己都已经写出来了是 JScript 而不是 JavaScript ,而Firefox 和其它的浏览器只会支持 JavaScript 而不是IE特有的 JScript。有名命名只能用name不充许用id么?
        这个在W3C里已经有明确的规定,哪里元素定义 name 无效等。
      

  12.   

    惨,每个名称前要加document.all和document.getElementById,严重影响写代码的速度和代码的可维护性。IE7.0并不能完全通过W3C,我感觉是正确的,不能因为这个标准而影响了功能的发展,我们要写更好的B/S软件,就需要有更好的功能,如果标准影响了发展,那是这个标准就有问题。就像法律影响了社会发展,那法律就需要修改。
      

  13.   

    IE7.0 beta 2 还没公测呢,不好下定论
    不过可以肯定的是,IE7.0 Final 版本 对标准的支持不会逊于Firefox个人观点仅供消遣!
      

  14.   

    严格按照W3C标准写脚本恐怕以后会更行不通了,因为IE开发并不是严格按照W3C来的,如果你做的网页在IE都看不了,那还有什么意义?一个是标准,一个是比标准用的还多的IE主流!我们都希望标准能超越主流,可惜现实不是!http://www.w3c.com/
    http://www.microsoft.com/
    http://www.macromedia.com/
    比较一下上面几个网站界面,就知道w3c没有多少希望来改变现状!
      

  15.   

    “惨,每个名称前要加document.all和document.getElementById,严重影响写代码的速度和代码的可维护性。”严重不明白楼主的意思,你的意思是说你的代码里没有任何注释,消除所有回车换行达到代码最精简,这样效率就最高??“严重影响写代码的速度”?多写这几个字符你就有多累了??想偷懒的话用VS.net或者Eclipse写脚本呀,有智能提示。“代码的可维护性”你那些不是标准的代码的可维护性才差呢,至少兼容性差,为了一个不标准的代码语句,查错就得半天,还谈什么可维护性!我认为楼主你写脚本代码非常不严谨!
      

  16.   

    cvpc(一回) ,你说的没错的,按照W3C标准写IE应该都能支持的,否则这也算是IE的一大失败了。只是按照W3C标准写,很多功能会没有,所以才没法按照W3C标准写!特别像现在的企业老板,开发B/S软件要这个功能那个功能,你都没得选择了,而且也欠IE功能太少!微软那边也表示了,要完全通过W3C标准,工作量很大,如果这些工作量用来增加新的功能,那会更爽!
      

  17.   

    回 meizz(梅花雪) ,我写JS代码注释很多的,但正式使用到网站上的时候,是用一下代码精简工具把注释去掉,可上面的document.getElementById和document.all就不行了。
      

  18.   

    一个是标准,一个是比标准用的还多的IE主流!我们都希望标准能超越主流,可惜现实不是!说实话我也很希望IE能够一统天下,这样就没有任何兼容性的问题,但是现实不是,国际标准不是你IE的标准,浏览器不是你IE一家。我以前也遇到过象楼主你这样的问题,因为以前只在IE环境里写代码,从来没有考虑过井外边的东西,做B/S 项目的时候也用不着考虑什么别的浏览器,但是后来做产品,做网站,就不得不考虑这些兼容性的问题。虽然说IE是主流,市场占有率将近90%,但是若是做网站的,并不能只为图方便省事而摒弃那10%的用户,且这十分之一的用户又不是没有办法兼容。后来我跳出IE的壁垒,按照国标来写代码,这样至少可以兼容99%以上的用户,虽然说这个过程令我痛苦,从原来的习惯改成另一个习惯,但我认为这一步转换很值。不要以为IE自己扩充了国标,就认为IE标准就有多么先进,不要以为从你原来的IE标准跳到国标就是倒退,恰恰相反,从IE标准回到国标是进步,一个质的进步。从此以后,浏览器的不同就不是什么障碍,你写出来的代码可以在任何符合国标的浏览器上运行,你也就从IE之个井底蛙跃入大海成蛟龙了。
      

  19.   

    IE的市场占有率将近90%,这个数字是假的,我这边的房源网站计数器显示是100%
    MSIE6.X 234042 84.9%
    MSIE5.X 41189  14.9%
    其它   234    0%这是一个网站的统计,用的是站长发发的免费网站统计,相信别的网站比列最大,其它浏览器占有比例到5%也差不多了。而且拿你现实生活中的朋友来参考一下,这个数字。
      

  20.   

    站长发发上面的统计应该是准的,我刚刚用firefox登陆,需重新拨号,访问,其它浏览器访问的统计里面会增加一个。
      

  21.   

    警告: ID/NAME 所引用的元素位于全局范围。请使用 W3C 的标准形式 document.getElementById() 。
    源文件:http://127.0.0.1:83/
    行:88还有color=""这样也是错的!它自己意识到这点,却还在求标准,在求标准的基础上,软件还要人性化,编程语言也是,向着人的直观思考方式去发展,而不应该向着先人定下的标准去发展。
      

  22.   

    我觉得注意一些写法上问题就可以尽力避免这件事情,firefox没什么不好,而且即使没有firefox,还有别的类似的浏览器也会流行,我觉得梅花雪说的很对,还是要符合w3c的标准,微软也有不合w3c的东西,渐渐也会被大家所抛弃,最近在研究live的代码,他就是firefox也支持的,所以也就是说微软也希望于所有的浏览器看起来都正确.
      

  23.   

    楼上的说真的还是说假的,竟然说用IE的不多(myie也算IE),那还能用什么,你举几个例子说说就可以了?
    firefox用起用还没有QQ的那个浏览器爽,很不人性化的,不相信这世界会有10%的人有着好工具不用,喜欢用不方便的工具。
      

  24.   

    我觉得无所谓了。
    如果客户真的使用Firefox出现问题,我们客气的对他说,请使用IE,而且是强烈建议升级到6.0。
    但我们会在心里会想:“TMD,你去死吧,谁叫你用Firefox,方案设计书中明确写了要用IE的。”。
      

  25.   

    TO: rawjim(我是一个好学的新人) 
        你做的是项目,当然可以在设计书里说明使用IE,但若你是做产品或者网站的,你也这么做?
      

  26.   

    回楼上的,我怕
    我写的程序客户端脚本用得太多太多了,不过按现在的情况来看,不必考虑firefox,但我怕大家都这样支持,万一以后弄成必须考虑了,可就惨了,光最简论坛就有70几个js文件,而我写的房源软件有140多个js文件,给海军写的一个办公软件有120几个js文件,改起来的工作量可不小!而且如果是光修改一下语法就能搞定那无所谓,关键是万一碰到某个功能无论怎样都不可能在firefox这样的浏览器下实现,那才是惨的!
      

  27.   

    我一般JavaScript出错时,会在FireFox里调试一下,因为里面有个FireFox控制台,很方便地说。编码也尽量按W3C标准,我觉得很好啊。
    在测试的时候,我都要求最起码用IE5和Firefox1.0两种浏览器来测试,这样出来的程序就基本上没有问题了。如果是内部使用的程序,如OA之类可以直接用IE6来测试了。另,我觉得IE里javaScript解释引擎其实是JS解释引擎,而Firefox里是JavaScript解释引擎,不知道对不对。另:特别感谢meizz(梅花雪),两年前来论坛,很多时候得到meizz(梅花雪)的指点,当时的问题都很幼稚,meizz(梅花雪)总是不拒新手,耐心回答。后来差不多两年没上了。现在重返论坛,meizz(梅花雪)还是孜孜不倦地活跃在此,致敬。
      

  28.   

    除了几个比较特殊的比如滤镜、行为、POPUP等是IE特有的之外,其它的一些DHTML操作各种浏览器都应该是支持的。再说了,一开始就遵循好的规则,后面就可以事半功倍了。早晚要改,你晚改不如早改。    不过看楼主所说有,几十个以至于上百个JS文件,那你也写的太夸张了点吧,哪里有需要这么多脚本文件的系统呀!!一般来说顶多十几个JS文件足够多了。提高你的代码模块化和复用性。
      

  29.   

    To:meizz(梅花雪)
    讨论嘛,当然是基于自己的观点和实际情况。
    你说的网站和产品,指的是大型的吗?没搞过。小站点,我是不会考虑到其它浏览器的。就这点钱,这么几个人浏览,不想费那么多劲。
    但对于大型的公共站点,是非常有必要让支持尽可能多的浏览器。一分钱,一分货,如果投资方需要,肯出钱。也可以让它支持比较多的浏览器。
    另外有个小问题想问一下,而且很长时间以来,都想不通的问题。你怎么有那么多的时间来CSDN。你上班不忙吗?
      

  30.   

    当然忙,只不过我的JS是在CSDN里从零学起来的,前人助我成长,我也得助后人进步。
      

  31.   

    标准是一回事
    但IE在标准上加的一些功能,
    例如showModalDialog其实也是很好的功能
    不用的话,实在很可惜如果做项目的话
    对客户的浏览器作一些要求,这无可厚非
    也切实可行.
    如果是做网站的话,
    在不明显影响效率的情况下,当然是能支持的东西越多越好
    就算是ie外的用户只有5%,
    能多争取这些客户当然也是一件很不错的事。
      

  32.   

    meizz(梅花雪)是不是不信我用了那么多js脚本
    http://3http.com/house/
    上面是我写的房源软件,你感觉会不会要用到那么多js文件?
      

  33.   

    大略看了一下http://3http.com/house/里的页面
    感觉前台的代码还有一些改进的空间:
    以index.js,5list-.js为例:
    (个人看法,错了勿怪)1.函数名变量名取得太简短,可读性不好,也给以后的维护者带来麻烦(相信那个网站的开者不会超过两个人,不然的话不会出现这样的情况)2.函数里的变量应该在定义前加上var,不然的话就当是全局变量,可能会多耗些资源3.有的功能太花,例如search页的的弹出框或模拟层太多,加上去会激发客户洪水猛兽样的想象力,给自己带来麻烦4.有的功能可以写成共用的,例如登录页面的必须输入,验证方式有点过于原始,跟整个网站的水平不大相当
      

  34.   

    看了一下 http://3http.com/house/ 里的JS代码,function.js  left1tree.js 
    我怕我的评论会伤了楼主的心,但我还得说,楼主,你的JS代码真的有待改进呀。
    变量、函数随意写,代码毫无布局章法。没有任何浏览器兼容的想法。这是JS入门初期的代码
      

  35.   

    这样是不是简单多了?
    function $(s) {return document.getElementById(s);}
      

  36.   

    其实不错
    网站的基本颜色配得比较淡
    看起来很舒服
    不同页面的css风格比较合得来。
    用户又不会去看代码
    功能做到,
    使用方便就是很不错的了。
      

  37.   

    尽量不要填入<>和`^' "等特殊字符,引号可以用中文的引号来代替,即“”‘’,<>可以用<>代替。是个无理要求
    并且这样说反而让人怀疑网站的安全性
    很可能在从数据库里取数据显示到页面时没有经过转特殊符号,
    如果真是这样的话别人可以在你的页面注入jscript
      

  38.   

    我的QQ:275497839
    http://3http.com/  欢迎大家交流上面的程序是一个人完成的,我自己的规则是大写D开头为全局变量,字母a,b,c,d为局部变量,不管是否声明,用完就不管的变量,经常调用的函数我都声明,否则会出错。
    而a是最常用的临时变量,b和d一般为数据,c为数字形式,更多的变化为a1,a2,a3之类的变动。
    用上面的规则是处理临时变量的,全局变量我都是放在开头或结果,并在变量后面加上注释,忘记了拉到最前或最后查看意思,另外我英文不好,所以取名只好是用这个办法了,如果我一开始英文好,估计不会走到这一步,但我现在英文单词认识多了,方法却还是没有变。答:search页的的弹出框或模拟层太多,但我用它来代替可修改的下拉列表,用的是同一个函数,只是变更一下参数!
    function $(s) {return document.getElementById(s);}
    这句我看到过,但不记得是谁写的代码了,我一开始搞不错它为何这样做,现在才明白,是个不错的方法。不过我还是打算以后尽可能用name来代替id。登录页面的验证方式有点过于原始,这个不明白你具体指的方面,我js验证了,服务器端还是再验证一次的,就算跳过js直接提交到服务器端,也是面对着一个完整的验证。用的方法都是好普通好普通的方法。不知道你说的是代码方面的,还是表现形式上?另外我那些代码格式很乱的,自从学了c#,我的新代码就都按C#的那种来写,感觉C#的语法格式很不错。就像上面的代码,我也写成如下形式,不过维护方便性这个问题,我是经了多次挫折才意识到的,一个人写的确会走很多弯路。
    function $(s)
    {
       return document.getElementById(s)
    }说实话,上面这个房源软件的程序代码已经是改进再改进的了,如果看http://3http.com/的论坛代码,我自己写的,现在我自己看都感觉头痛。但浏览器兼容的想法,这点我到现在还不认的,像用$(s)函数来兼容一下浏览器,代码可读性就会差很多,整体代码也会长很多。
      

  39.   

    尽量不要填入<>和`^' "等特殊字符,引号可以用中文的引号来代替,即“”‘’,<>可以用<>代替。我写这句话,当然是偷赖了,因为文本框太多,一一验证太累,一个的文章形式的,当然随便它输什么都行,另外asp.net拒绝提交特殊字符的,所以我就不管了,还有我想到这软件是自己给自己用的,使用者不会自找麻烦,另外现在客户在用,最多的一个客户,里面信息有2000多万条了,我的程序没有用到视图。发现用视图到一百多万条查询速度就变慢了!只能说写上上面的这句话,完全是偷赖,不过我自己都没有试过,输了上面的这些字符会不会出错!