随着微软每年大约发布一个新版本的IE,诸如Google Chrome,Firefox和Safari之类的竞争对手也这样做了,人们经常会质疑Web应用程序是否支持特定的浏览器。

关于确定要测试的浏览器已经存在一个问题(可以使用哪些技术来确定要测试的浏览器?)。但是,根据我的经验,表示层的呈现对于测试浏览器支持至关重要,而幕后发生的代码非常很少依赖浏览器(如果确实如此,在我看来

由于答案可能会因应用程序和设计而异,因此您如何确定将“触发”浏览器检查的内容?

评论

我意识到,我对上一个问题的回答很容易产生“取决于它”的答案。因此,我将问题从请求条件修改为确定条件的技术。

#1 楼

要决定我们需要测试的内容,我们需要了解可能会破坏的内容。当前的Web浏览器批次具有一组众所周知的错误和差异。如果您了解这些差异,则可以很长一段路要理解为什么页面出现JavaScript问题或在不同的浏览器中呈现不同的原因。 Internet Explorer具有大量CSS布局问题和渲染错误。此处提供完整列表。
浏览器之间或在不同平台上的同一浏览器的不同版本中,可能会有一些细微的渲染差异。
下图显示了Internet Explorer 5.5(和已重载的Microsoft Internet Explorer 6一起使用,可以追溯到2008年,当我第一次进行比较时。

您可以清楚地看到,IE5.5中的主页元素显然已移至左边。您还可以看到导航栏根本不起作用,并且IE 5.5不支持silverlight。
这些类型的呈现差异通常会在主要浏览器版本之间发生。
当存在浏览器时在跨平台上,通常所有平台上都使用相同的呈现引擎,因此相同版本的浏览器通常会在其支持的所有平台上呈现相同的结果。这样可以减少在多个平台上测试相同版本的浏览器的需求,但是,如果该配置已经可用,则建议对跨平台的浏览器进行简单的健全性检查。
您可以直观地看到这些错误如何在Acid 2中显现出来测试。此测试旨在查看浏览器是否可以正确呈现CSS。大多数网站通常首先在一个主要的浏览器(市场领导者)上进行测试,因此,没有这些问题的浏览器现在将出现布局问题。在对运行浏览器Acid 2测试的不同浏览器进行的比较中,可以清楚地看出这一点。

如果您的网站是在Mac上开发的,则几乎可以保证Internet Explorer中会出现问题。如果您的网站是在Windows 7上开发的,则相反的情况适用于Safari,而IE6可能会被破坏。
此外,该网站在每种浏览器中都不会看起来相同。根本不可能。这是microsoft.com在lynx中的外观。

具有讽刺意味的是,这正是搜索引擎如何看待世界的原因。

评论


大声笑终端和雅+1 ...

–塔伦
2011年5月27日下午3:31

#2 楼

由于缺乏特定浏览器对javascript的支持,浏览器兼容性检查的关键区域缺少功能。它还应考虑到GUI问题,例如未对齐。

某些浏览器可能不支持该软件向最终用户提供所需功能所需的Javascript或Active-X控件。请参阅以下Wikipedia文章http://en.wikipedia.org/wiki/Comparison_of_web_browsers#JavaScript_support

例如:
1。)使用以下命令验证日期输入字段的日期格式是否正确: javascript。如果浏览器不支持javascript,则该软件将允许客户输入无效日期,这是有缺陷的。

2.)使用客户端javascript按字母顺序对国家/地区下拉列表进行排序。相同的规则适用于一个。如果不支持,用户会发现很难从下拉列表中选择国家/地区

文本,图形和颜色在不同的浏览器上可能会以不同的方式显示。
1.)控件未对齐对客户来说令人沮丧的网页

2.)在移动浏览器上看起来混乱的网页

评论


Javascript支持问题很好。是否有任何文档可以列出浏览器支持/不支持的内容?

– Tristaan​​Ogre
2011年5月26日19:51

搜索并在Wiki中找到此链接:en.wikipedia.org/wiki/…

– Aruna
11年5月26日在20:26

#3 楼

在不同的域中,浏览器的行为有所不同:


Java语言,如Aruna
纯HTML所解释的那样,就像IE 9之前的所有版本都不支持canvas标签一样
CSS:例如,即使在不同版本的IE http://www.smashingmagazine.com/2009/10/14/css-differences-in-internet-explorer-6-7-and-8中,CSS的支持也有所不同/

新的HTML 5相关功能,例如对视频的支持(与现在臭名昭著的WebM-H.264战争),对WebGL,WebFonts,SVG等的支持...

测试时必须查看的关键功能在很大程度上取决于您的应用程序,并且其中使用了哪些功能。