您的位置:首页 > Web前端 > JavaScript

判断客户端是否禁用javascript、cookie

2009-06-28 20:43 357 查看
通常情况下很少用户会想到禁用javaScript。所以我们为了实现一些良好的用户体验、达到一些网页效果,或多或少的会用的javaScript、Ajax、cookie等技术。

可是目前存在的Web攻击往往利用这些移动代码(javaScript、cookie、flash、java小程序、ActiveX 等)攻击客户端,来达到非法的目的。于是一些安全意识比较高的用户利用浏览器提供的功能禁用或屏蔽了js、Cookie等。

所以我们有必要判断客户端javascript是否被禁用了,提示用户开启javaScript功能。请看下面的代码:

Java代码


<div id="NoJs" >你禁用了javascript。</div> <div id="YesJs">body</div> <script> var NoJs= document.getElementById("NoJs"); NoJs.className="close"; //close 的样式代码 .close{ display:none; } </script>
<div  id="NoJs" >你禁用了javascript。</div>
<div id="YesJs">body</div>

<script>
var NoJs= document.getElementById("NoJs");
NoJs.className="close";
//close 的样式代码  .close{ display:none; }
</script>


这段代码的原理很简单,即如果执行了javascrpt代码,id为NoJs的div被隐藏,否则显示。

下面这段代码是利用javaScript来判断Cookie功能是否已开启:

Js代码


<script> function CookieEnable() { var result=false; if(navigator.cookiesEnabled) return true; document.cookie = "testcookie=yes;"; var cookieSet = document.cookie; if (cookieSet.indexOf("testcookie=yes") > -1) result=true; document.cookie = ""; return result; } if(!CookieEnable()){ alert("对不起,您的浏览器的Cookie功能被禁用,请开启"); } </script>
<script>
function CookieEnable()   {
var result=false;
if(navigator.cookiesEnabled)  return true;

document.cookie = "testcookie=yes;";

var cookieSet = document.cookie;

if (cookieSet.indexOf("testcookie=yes") > -1)  result=true;

document.cookie = "";

return result;
}

if(!CookieEnable()){
alert("对不起,您的浏览器的Cookie功能被禁用,请开启");
}
</script>


以上方法并不是唯一的解决方案、也不是最好的解决办法,这要根据具体情况而定。总之,我觉得我们改善网站的可用性、易用性,应该建立在禁用js、cookie等的情况下开始,不能让Cookie和js影响网站的正常功能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: