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