C#判断浏览器功能实例详解
C#判断浏览器是否支持JavaScript和Cookies许多网站需要客户端做许多复杂的工作,比如:用客户端 JavaScript 进行数据合法性校验,这需要客户浏览器的JavaScript enabled;使用 Session 变量记录身份等信息,需要浏览器 Cookies enabled。因此,有必要确定用户浏览器中的这些选项被打开。在我的网站中,我使用了一串简洁的代码实现这些功能,在用户登录时进行检查,如果不符合就不让登录。在本文中,我就介绍一下这个login页面的写法。
C#判断浏览器功能的分析和解决:
我们首先用 JavaScript 建立一个Cookie,然后检查 Cookie 是否存在。由于我们使用 JavaScript 进行这项操作,如果用户没有打开 JavaScript,但打开了 Cookies 的话,我们仍然会得到Cookies 没打开的结果。但这与我们的要求并不冲突,反正我们是要求两者都打开的。(如果你确实只想知道 Cookies 是否 enabled,而不关心 JavaScript,也是有办法的,我们在另文中讨论)要确定用户是否打开 JavaScript,我在 html 中建立了一个隐藏 from,然后在 onload 事件中调一个 JavaScript 函数,改变该隐藏 form 的值,如果值被改变了,那就说明 JavaScript 是打开的,否则这个JavaScript 函数就不会被调用。(上面两个功能我写在一个函数中)
首先,我们放一个隐藏 form 在 html 中,用form.../form括起来。(当然,中间还可以有 username/password 的from)
FORM ... input type="hidden" name="cookieexists" value="false" /FORM
只要它的值是false,就说明浏览器不支持 JavaScript。注意其初始值是 false。我们的 JavaScript 函数将把这个值换
为true。在 BODY 中这样写:
body onload="cc()"
cc()的内容如下:
script language="JavaScript" !- function cc() { /* check for a cookie */ if (document.cookie == "") { /* if a cookie is not found - alert user - change cookieexists field value to false */ alert("COOKIES need to be enabled!"); /* If the user has Cookies disabled an alert will let him know that cookies need to be enabled to log on.*/ document.Form1.cookieexists.value ="false" } else { /* this sets the value to true and nothing else will happen, the user will be able to log on*/ document.Form1.cookieexists.value ="true" } } /* Set a cookie to be sure that one exists. Note that this is outside the function*/ document.cookie = 'killme' escape('nothing') // -- /script
C#判断浏览器程序能实现的功能是:
1 当用户 JavaScript 打开,而 Cookies 关闭时弹出警告信息