希望集团有多大:ASP中如何检测用户所使用的浏览器名称,不只检测出是IE核心或是其它

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/29 14:30:43
第一个回答不是我要求的
是得到具体使用的什么软件:比如IE或Maxthon等信息

当然你可以用客户端脚本如Javascript来做浏览器类型检测,但有些浏览器不支持客户端脚本如 Lynx,或者有些人把允许JavaScript的选项给关掉了,那样的话你就达不到目的了。

看看下面的例子来了解一下ASP是如何解决这个问题的
<%@ Language=VBScript %>

<HTML>

<HEAD>

<META NAME="GENERATOR" Content="Microsoft Visual Studio 6.0">

</HEAD>

<BODY>

<%

dim BrowserType

set bc = Server.CreateObject("MSWC.BrowserType")

if bc.browser="IE" then

BrowserType = "MSIE"

elseif bc.browser="Netscape" then

BrowserType = "Netscape"

elseif bc.browser="Lynx" then

BrowserType = "Lynx"

end if

%>

<%

select case BrowserType

case "Lynx"

Response.Write("You're using Lynx! How do you manage to live
without 3-D backgrounds and endless download times? Whatever!")

case "MSIE"

Response.Write("You're using Internet Explorer! Thank you for
helping keep Microsoft afloat!")

case "Netscape"

Response.Write("You're using Netscape! And you're wearing those
great pink pants! ASP knows everything about you!")

case else

Response.Write("You're using some other browser I don't know
about.")

End select

%>

<BR>

</BODY>

</HTML>

看看它的结果. 它可以告诉你你所用的浏览器类型。
微软的那些人给我们提供了很多现成的对象来使我们的工作更容易,比如上面的 MSWC.BrowserType。这个对象属性比起常用的HTTP_USER_AGENT常量来说更容易处理一些,因为它不会把IE显示成"Mozilla (compatible)" ,你也不需要去分析一个字符串来获得版本号,这可以由另外一个属性 (majorver)来获得,还有平台属性(platform)。这样可以使代码显得更简明,这总是一件好的事情。在你的 if 语句里再加几个分支,你就可以精确的告诉用户它们所使用的浏览器类型,版本和平台。

在HotBot里我们使用了与上面相类似的代码,并利用服务器端的include为不同的浏览器提供不同的页面。试着用Lynx浏览一下 - 效果很好!

[代码节选: if bc.majorver = "4" and InStr(bc.platform,"Win") <> 0 then ]

把平台信息保存在cookie里是个好主意,那样就不必每次调用此页时都在服务器端进行处理,但只有当你确实担心你的站点太忙时才有必要这样做。

总之,ASP是个相当强大的东西,也相当易用。即使你个人不想再为微软日益增强的势力添柴加火,你也有理由关注一下雷蒙德的那些家伙们又搞出什么新花样了,毕竟,那儿有一帮很棒的程序员。