网上有一些关于asp判断浏览器是否支持cookie的代码,一般都很有局限性,举其中最典型的一例:
…网上有一些关于asp判断浏览器是否支持cookie的代码,一般都很有局限性,举其中最典型的一例:
以下是引用片段:http://www.pconline.com.cn/pcedu/empolder/wz/asp/10111/15131.html Browser Capabilities 组件众所周知,并不是所有浏览器都支持现今 Internet 技术的方方面面。有一些特性,某些浏览器支持而另一些浏览器却不支持,如 : ActiveX 控件、影像流、动态 HTML、 Flash 以及脚本程序等。使用 ASP 的 Browser Capabilities 组件,就能够设计“智能”的 Web 页,以适合浏览器性能的格式呈现内容。 Browser Capabilities 组件能够创建一个 BrowserType 对象,该对象提供带有客户端网络浏览器的功能说明的用户脚本。该组件之所以能识别客户浏览器的版本等信息,主要是因为当客户浏览器向服务器发送页面请求时,会自动发送一个 User Agent HTTP 标题,该标题是一个声明浏览器及其版本的 ASCII 字符串。 Browser Capabilities 组件将 User Agent 映射到在文件 Browscap.ini 中所注明的浏览器 , 并通过 BrowserType 对象的属性来识别客户浏览器。若该对象在 browscap.ini 文件中找不到与该标题匹配的项,那么将使用默认的浏览器属性。若该对象既未找到匹配项且 browscap.ini 文件中也未指定默认的浏览器设置,则它将每个属性都设为字符串 “UNKNOWN”。在默认情况下, browscap.ini 文件被存放在 WINDOWS\SYSTEM\INERSRV( 如果是 95/98+PWS4) 或 NT\SYSTEM32\INERSRV( 如果是 NT) 目录中,你可以自己编辑这个文本文件,以添加自己的属性或者根据最新发布的浏览器版本的更新文件来修改该文件。请看以下 checkCookie() 过程,使用 BrowserCap 对象的 Cookie 属性来判断客户端浏览器是否支持 Cookie,并返回信息 :
< % Sub checkCookie() Set BrowserCap=Server.CreateObject(“MSWC.BrowserType”) if BrowserCap.Cookie=True then response.write “你的浏览器支持 Cookie!” else response.write “对不起,你所使用的浏览器不支持 Cookie!” end if end Sub %> |
使用此代码的条件是服务器必须支持Browser Capabilities 组件,而一般的主机是否支持此组件并不清楚,本博客的主机就不支持该组件,我的IE5都提示为unknown。另外即使浏览器支持cookie,用户也未必开启了该功能。
我写了另一个代码,也就是本站所采用的代码,直接测试浏览器是否启用了cookie。依赖于Response.redirect(URL)
假设使用该代码的页面为yourpage.asp,查询字符串为qstr,开页面开头假如如下代码:
IF Request.cookies(“Cookiename”)(“CookieTest”)<>“CookieTest” Then
IF Request.QueryString(“cookie”)=”cookie” Then
Response.Redirect(“no_cookies.html”)
Else
Request.cookies(“Cookiename”)(“CookieTest”)=”CookieTest”
Response.Redirect(“yourpage.asp?”&qstr&”&cookie=cookie”)
End IF
End IF