我们首先用 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>
这个程序能实现的功能是:
1 当用户 JavaScript 打开,而 Cookies 关闭时弹出警告信息
2 当用户 JavaScript 关闭,用户无法直接得到检查结果。(不要忘记,要弹出警告窗口也需要执行 alert 这个JavaScript 语句,这时即使检查出来都无法提示),但这时用户的 from 提交后,后台的程序就会发现 cookieexists 这个域的值是 false,这就说明 JavaScript 关闭了。以后要做什么就不用我说了吧?
免责声明:判断浏览器是否支持JavaScript和Cookies一文仅代表作者个人观点,与电脑知识网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容