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 关闭时弹出警告信息
2 当用户 JavaScript 关闭,用户无法直接得到检查结果。(不要忘记,要弹出警告窗口也需要执行 alert 这个JavaScript 语句,这时即使检查出来都无法提示),但这时用户的 from 提交后,后台的程序就会发现 cookieexists 这个域的值是 false,这就说明 JavaScript 关闭了。以后要做什么就不用我说了吧?
C#判断浏览器功能的程序内容就向你介绍到这里了,希望对你了解和学习C#判断浏览器方面有所帮助。
【编辑推荐】