对于互连网络迅猛发展的一个解释就是其开放的标准,HTML设计出来是要在任何电脑的任何浏览器上能够进行同样的显示,即用户平台与浏览器的无关性,但是现在,这已经不太可能了。从开始,NetScape引入专有的HTML标记,例如:NetScape1.0可以解释闪烁的文本,而现在,很多非Netscape的浏览器都不能进行解释。frame分屏则是NetScape对HTML扩展的另外一个例子。 在NetScape一支独秀的时候,由于用户选择面有限,还没有什么大问题,微软的强行抢滩使得标准不统一的现象更加严重。例如<BGSound>标记和<MARQUEE>标记现在只能在微软的IE上进行解释。前者播放背景音乐,而后者是滚动选取框。 HTML目前已经分割为两个标准,由于NetScape和IE相继推出新的版本,这种分歧已经可以用”Netscape HTML”和”Microsoft HTML”这样的说法来形容,这样对于网 站设计者来说就产生了很大的问题。 一方面,对于设计者为了建设最‘酷’的网站,就必须采用最新的HTML标记,这样才能吸引用户。
另一方面,网站设计者又必须考虑到用户的浏览器,因为没有人会赞赏他看不见的网页。一旦你使用了某一家的HTML扩展,那么就意味着失去了另外一家浏览器生产商的使用客户,要知道,现在二者各占有近一半的浏览器市场,因此对于网站设计者,这绝对是个伤脑筋的问题,因为你很可能因此失去相当数量的潜在访问者。
由于上述,网站设计者该如何处置呢?这里面就要提到浏览器能力检测组件的使用了。 使用浏览器能力检测组件 你可以根据浏览器检测组件来判断浏览器的类型并依此来显示不同的主页,这样,你可以尽量去使用最新的HTML扩展而在不支持的浏览器上显示别的东西。 注意 根据你的电脑安装后的Browscap.ini的版本,你可以检测到比列出的那些还要多的浏览器特性。如果希望详细了解,参考后面介绍其检测原理的部分 你当然还可以利用ServerVariables集合来判断浏览器的分辨率,颜色数目等特性,这些只能在某些微软的浏览器上实现。参看第14章。 默认的,可以检测到的浏览器特性如下: ■browser:顾名思义,就是浏览器类型,比如Internet Explore或者NetScape ■version:浏览器当前版本 ■majorver:浏览器的主版本(小数点以前的) ■minorver:浏览器的辅版本(小数点以后的) ■frames:指示浏览器是否支持分屏方式 ■tables:指示浏览器是否支持表格 ■cookies:指示浏览器是否支持cookies ■backgroundsounds:指示浏览器是否支持<bgsound>标记 ■vbscript:指示浏览器是否支持客户端vbscripts脚本 ■javascripts:指示浏览器是否支持客户端javascripts脚本 ■javaapplets:指示浏览器是否支持java applets。 ■ActiveXControls:指示浏览器是否支持客户端ActiveX控件 ■beta:指示浏览器是否还是测试版 ■platform:检测目前用户所用的操作平台,例如,win95,winNt,或者Mac PowerPC ■win16:检测用户是用在16位的视窗(win31)系列还是32为的视窗系列(win95,winNT)。 使用浏览器能力检测组件,你需要首先创建它的一个事例,然后只需要简单的将要检测的特性名称加到事例中就可以了。下面是这样的一个例子:
<HTML> <HEAD><TITLE>浏览器能力检测示例</TITLE></HEAD> <BODY> <% Set MyBrow=Server.CreateObject(“MSWC.BrowserType”) %> 你的浏览器有如下特性: <P> <TABLE Border=1 Cellspacing=10> <tr> <td>浏览器类型</td><td><%=MyBrow.Browser %></td> </tr><tr> <td>分屏方式</td><td><%=MyBrow.Frames %></td> </tr><tr> <td>Cookies</td><td><%=MyBrow.Cookies %></td> </tr><tr> <td>操作平台</td><td><%=MyBrow.platform %></td> </tr><tr> <td>VBScript</td><td><%=MyBrow.vbscript %></td> </tr></TABLE> </BODY> </HTML> 这个脚本检测用户浏览器的特性并且进行显示,对于不同的用户,显然根据其浏览器显示不同结果.
浏览器能力检测组件 |