做dhtml开发,除了调试不是十分的方便外,我们还需要或多或少的考虑同一浏览器的版本问题。而比这些问题更让复杂dhtml开发郁闷的,却是对cross-browser浏览的支持。正好有人问到这个问题,我就简单的说说我的看法。

目前我是专做IE上的dhtml开发,所以我blog里的脚本开发分类都叫做"JScript&DHTML",而不是叫做"JavaScript&DHTML",也就是说我默认提供的事例讲解和代码示例都以JScript为准,因为我现在的工作也没有时间和必要让我去别的浏览器上验证我所发的脚本。如果有写JavaScript的地方,那就是我确认那部分内容JScript和JavaScript是兼容的。

关于cross-browser其实细说起来分为两类。第一类是狭义的cross-browser,就是说浏览器的内核版本之间的脚本代码及DOM版本实现上的兼容性支持(这里包括同内核浏览器比如:MyIE现在叫Maxthon遨游,昵称:马桶、Sleipnir、GreenBrowser简称GB、GoSuRF、kkman等的内核版本);第二类是广义的cross-brower,指的是浏览器内核不同实现间的脚本代码及DOM兼容性支持。前者的代表就是我们常说的IE5、IE5.5及IE6.0甚至IE6.0sp1这样的浏览器之间的差别,后者就是诸如:IE、Opera、Mozilla、Firefox、Netscape、Konqueror、Safari和iCab等。

我们接触到的狭义cross-browser支持,大多是在IE上开发dhtml功能,由于IE从4.0到6.0sp1之间对JScript引擎和DOM实现做了较大的修正和改进(有的是实现了更高的w3c标准版本)。当然别的浏览器也同样有这样的问题,比如Netscape从2.0b3到4.0版本,经历了将JavaScript引入浏览器并达到一个可用水平的变化。这样的cross-browser更象是做软件的向后兼容,但是这样的问题一般不会太麻烦,毕竟要求用户升级同一种软件,而不是完全更换是比较容易让人接受的。另外同一浏览器的升级毕竟还是在其原有的设计框架上,而不会带来整个结构翻天覆地的变化。不会像今天的IE和ff,它们在Script和DOM处理上的不同,真是让人巨郁闷,以后我会再讨论。

那么广义的cross-browser我又把它分为以下几种情况,一是Portal类的网站(包括各种门户以及各类机关、公司、组织等的官方信息发布的网站),二是普通网站(包括论坛、个人网站、blog,以及一些不十分正式和重要的信息发布网站),三是专用网站(包括各种部门级信息网站、企业ERP网站、OA系统等专有系统网站)。

从上面的简单分类就能看出,cross-browser支持任务最严峻的就是第一类Portal网站了,而且这类网站还没有办法逃避。当然是不是只要是这类网站就一定要支持cross-browser呢?其实这个完全是和建网站的人对网站的期望有关系的,就是说你希望你的网站能给带来什么CI来决定的。比如Google,它的Gmail的Web浏览方式被很多人认同,可是那个Pretty的Web Mail是一个非常复杂的dhtml开发工程。反过来,如果Gmail不能支持cross-browser,那么Google是不是给人感觉很矬呢?另一个相反的情况是,很多的xxx.gov.cn网站,根据其重要性来看它们完全因该属于第一类,可是它们很多却没有很好的支持cross-browser。这就是他们对网站的期望不高,没有觉得网站能给他们带来什么好处,而只是为建网站而建网站。同时,没有任何人能说由于某xxx.gov.cn做的象一坨屎,就要他们领导下课。

第二类普通网站,对于cross-browser来说其实是可支持也可不支持的。当然都能支持是最好的了,可是那需要成本的啊。不是大声说:支持!支持!!支持!!!,就自己支持了。这里面的论坛类网站,为了自己能有更多的潜在用户访问或注册,是会积极主动的支持cross-browser。当然这里的论坛也分很多种类型,如果是专注于Windows平台技术开发,我觉得对cross-browser做有限的支持也就足够了。至于其它的小站点,除非是为了展示dhtml技术和JavaScript特效,否这也应该做有限的cross-browser支持,当然程度可以更低一些。

第三类专用网站,这个需要根据其复杂度来区分,如果dhtml技术仅限于表单校验和一些简单的网页特效,这样的系统是应该支持cross-browser的。如果系统中有很复杂的dhtml开发,比如像Gmail,就需要仔细考虑是否支持cross-browser了。对于企业部署,其实用户习惯是可以教育的,就是要求使用IE6,甚至更过分就要求IE6sp1,很多时候都是不难办到的。对于这样的系统,如果dhtml难度还很大,而且完全不能说服用户,他就是要IE,并且至少firefox是要支持的。那么怎么办呢?那就申请更多的resource,支持就是了

最后说漏了一点,关于Web控件的开发,由于作者的期望是自己的控件被广泛的使用,所以它支持cross-browser的出发点,和前面说的论坛类网站的出发点其实是相似的。有空了再讨论一下不同复杂度的dhtml开发时cross-browser支持解决方案。

关于对cross-browser支持的一些看法相关推荐

  1. 完全采用CSS的CROSS BROWSER TABBED PAGES

    完全采用CSS的CROSS BROWSER TABBED PAGES 作者:Stu Nicholls   翻译:forestgan 信息 这是 cssplay的站长根据其最近创作的dropdown a ...

  2. UCSC genome browser 个人track 安装

    处理基因组数据,很多时候我们会觉得直接看序列文件不够直观,如果绘图的话,把n多G把数据用画图出来不仅费劲,就算操作也不方便.因此我们可以用UCSC开发出的genome browser,可以直接把数据信 ...

  3. File Browser安装及命令用法

    File Browser(文件浏览器)是一种基于GO语言开发的开源轻量级文件管理系统,它能够在浏览器上管理你的文件,让您可以在浏览器上使用查看.下载.修改等各种功能. 你可以把它当作私有云盘来使用. ...

  4. SitePoint播客#126:蛋黄在我们身上

    Episode 126 of The SitePoint Podcast is now available! This week the panel is made up of our full te ...

  5. HTML5讲解与演示转载整理

    ZHENGLIL weiking 2010.12.06 html Html5从入门到精通 上周我们总结会上面主题的第二部分就是关于Html5的,后来自己想总结一下Html5 的支持列表,写了许久,无果 ...

  6. SitePoint播客#127:Chris CoyierCSS技巧

    Episode 127 of The SitePoint Podcast is now available! This week our regular interview host Louis Si ...

  7. CSS 布局:40个教程、技巧、例子和最佳实践

    前言: 布局是WEB开发一个重要的课题,进入XHTML/CSS后,使用TABLE布局的方式逐渐淡出,CSS布局以众多优点成为主流,本文将介绍40个基于CSS的web布局的资源和教程.文章的出处在htt ...

  8. 你应该知道的25个非常有用的CSS技巧

    在我们的前端CSS编码当中,经常要设置特殊的字体效果,边框圆角等等,还要考虑兼容性的问题, CSS网页布局,说难,其实很简单.说它容易,往往有很多问题困扰着新手,在中介绍了非常多的技巧,这些小技巧与知 ...

  9. XSLT教程 [转]

    XSLT教程 XSL代表可扩充样式表语言 为了适应基于XML的样式表语言的需要,万维网联盟(W3C)开始发展XSL. XSLT代表XSL的变革.在这个教程里,你会学到如何通过XSLT把XML文档转换成 ...

最新文章

  1. Kail Linux渗透测试教程之Recon-NG框架
  2. Android EditText属性用法
  3. [原]JS ajax类的三种封装形式及简单对比
  4. python巡检脚本juniper_JUNIPER设备日常维护巡检命令
  5. 微软全球副总裁给你发了一张Connect 2016专属邀请卡:信仰再充值!Connect 2016技术大会在线直播!
  6. sql 新建表 alter_SQL ALTER表
  7. pythonclass的使用详情_python 类class基础简明笔记
  8. Mr.Panda and TubeMaster Gym - 101194J (二分染色有源汇上下界最大费用流)
  9. svm出现浮点数与字符串不能计算的错误(label必须为 整形或浮点型)
  10. Wunderlist1.22(Window版)无法启动的解决方法
  11. c语言单元测验答案,c语言试题及答案
  12. Unity3D研究院之Inspector面板枚举的别名与排序(八十九)
  13. Python练习实战股票网页数据
  14. P2184 贪婪大陆 线段树(优化:区间修改变为单点修改)
  15. pdfpcell输出换行_fpdf 的cell 中文自动换行问题
  16. MySQL内存表的特性与使用介绍 -- 简明现代魔法
  17. iPhone手机 -- 如何找到开发者选项
  18. vbulletin论坛_评论-vBulletin 3.0
  19. 计算机网络——物理层(宽带接入技术)
  20. 西安电子科技大学经济与管理学院861上岸学姐考研经验分享

热门文章

  1. pxe安装linux dhcp失败,51CTO博客-专业IT技术博客创作平台-技术成就梦想
  2. VUE 使用插件vue-clipboard2复制内容至剪切板(两种使用方法)
  3. java finalize逃脱_关于Java中的finalize()方法
  4. python中pos的用法_Python:数组、队列及堆栈的使用(list用法)--转
  5. 微软 python_微软推出 Pylance,改善 VS Code 中的 Python 体验
  6. 之全能忙内_临沧大名山茶:喝过诸多忙肺茶,但你不知道什么是“隔年香”
  7. vue2.0 通过ip访问自己运行的项目
  8. opencv 正脸和侧脸检测
  9. Java中利用socket实现简单的服务端与客户端的通信(中级)——实现任意双向通信
  10. 【C++】43.使用【类对象】与 【类指针】的区别