分享

判断客户端浏览器是否禁用了javascript和cookie

 WindySky 2009-07-03
虽然我们很少会去禁用javaScript,但我们为了实现一些好的用户体验、达到一些网页效果,或多或少的会用的javaScript、Ajax、cookie等技术。

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

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

<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功能是否已开启:
<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影响网站的正常功能。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多