9月2日Google正式发布了其开源浏览器Chrome的Beta版下载。下载地址
作为开发人员,除了享受Google浏览器带给我们的新鲜感觉和全新体验外,不自觉的会思考其与其他浏览器到兼容性问题,毕竟因为这一点我们已经被IE6、IE7、FireFox搞得焦头烂额了。这还不算刚刚发布Beta2的IE8,现在又来了Chrome,我们不禁要问:Chrome,你行吗?
Google Chrome浏览器借鉴了一些源自Apple WebKit和 Mozilla Firefox的技术,从这一点上来说,Chrome浏览器与FF更接近。经过简单的试用,我们发现Chrome的兼容性很好,无论是Google、百度、新浪,还是豆瓣、鲜果都能够正常显示。而且特别值得一提的是,Chrome的页面加载速度很快,不知道是不是采用独立进程的设计结构有关。
尽管如此,Chrome对一些页面元素的呈现还是显示了独到之处。例如,ASP.NET的Menu对象,无论IE,还是FireFox都是以<table>的方式呈现,如:
Code
<table id="ctl00_navMenu" class="ctl00_navMenu_2" cellpadding="0" cellspacing="0" border="0">
<tr>
<td onmouseover="Menu_HoverStatic(this)" onmouseout="Menu_Unhover(this)" onkeyup="Menu_Key(this)" id="ctl00_navMenun0"><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td style="white-space:nowrap;"><a class="ctl00_navMenu_1" href="menu1.aspx">菜单项一</a></td>
</tr>
</table></td><td style="width:3px;"></td><td onmouseover="Menu_HoverStatic(this)" onmouseout="Menu_Unhover(this)" onkeyup="Menu_Key(this)" id="ctl00_navMenun1"><table cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td style="white-space:nowrap;"><a class="ctl00_navMenu_1" href="menu2.aspx">菜单项二</a></td>
</tr>
</table></td><td style="width:3px;"></td><td onmouseover="Menu_HoverStatic(this)" onmouseout="Menu_Unhover(this)" onkeyup="Menu_Key(this)" id="ctl00_navMenun2"><table class="selected ctl00_navMenu_4" cellpadding="0" cellspacing="0" border="0" width="100%">
<tr>
<td style="white-space:nowrap;"><a class="ctl00_navMenu_1 selected ctl00_navMenu_3" href="menu3.aspx" style="border-style:none;font-size:1em;">菜单项三</a></td>
</tr>
</table></td>
</tr>
</table>
但是Chrome则不同,Chrome使用了另外一种呈现方式,这应该是Chrome做得特殊处理,如下:
Code
<div id="ctl00_navMenu">
<span><a class="ctl00_navMenu_1" href="menu1.aspx">菜单项一</a></span>
<span><a class="ctl00_navMenu_1" href="menu2.aspx">菜单项二</a></span>
<span><a class="ctl00_navMenu_1" href="menu3.aspx">菜单项三</a></span>
</div>
可以发现Chrome用<div>替换了外层的<table>,使用<span>替换了嵌套的<table>,经过处理后,呈现的代码被大大精简,而且更符合当前div+css的Web设计潮流。
无论如何,Google Chrome更我们带来了完全不同于以往的全新体验,而且目前仅是Beta版本,相信随着Google团队的不断改进,Google Chrome浏览器能够带给我们更多的惊喜。
Update:
看到朋友们的回复中提到了Apple的Safari,急忙从Apple网站上下载了最新的Windows版,测试相同的代码,发现Safari的呈现代码和Chrome一样,是不是因为Chrome使用了Apple WebKit的原因?
另在ASP.NET论坛有人回复说:
Safari and IE5.0 are considered downlevel browsers by ASP.NET. By default you won't get rich renderings for either of those.
ASP.NET将Safari和IE5.0看作低级浏览器,默认情况下使用这两种浏览器不能得到内容丰富的呈现。
如果这和Chrome使用了Apple WebKit有关,就好解释了。Chrome浏览器不同于IE、FF的呈现与ASP.NET有关,ASP.NET将Chrome认为是低级浏览器,返回了简单代码,并非浏览器自身做了特殊处理。
Update2:
何为downlevel browsers?下层浏览器
具有基本特性和功能的早期浏览器。不支持脚本编辑、动态 HTML (DHTML)、DHTML 行为或可扩展标记语言 (XML) 的浏览器通常被视为下层浏览器。