判斷客戶端是否禁用javascript、cookie

通常情況下很少用戶會想到禁用javaScript。所以我們爲了實現一些良好的用戶體驗、達到一些網頁效果,或多或少的會用的javaScript、Ajax、cookie等技術。

 

      可是目前存在的Web攻擊往往利用這些移動代碼(javaScript、cookie、flash、java小程序、ActiveX 等)攻擊客戶端,來達到非法的目的。於是一些安全意識比較高的用戶利用瀏覽器提供的功能禁用或屏蔽了js、Cookie等。

    

     所以我們有必要判斷客戶端javascript是否被禁用了,提示用戶開啓javaScript功能。請看下面的代碼:

   

Java代碼 複製代碼
  1. <div  id="NoJs" >你禁用了javascript。</div>   
  2. <div id="YesJs">body</div>   
  3.   
  4. <script>     
  5.     var NoJs= document.getElementById("NoJs");   
  6.     NoJs.className="close";   
  7.                 //close 的樣式代碼  .close{ display:none; }   
  8. </script>  

 

   這段代碼的原理很簡單,即如果執行了javascrpt代碼,id爲NoJs的div被隱藏,否則顯示。

 

  下面這段代碼是利用javaScript來判斷Cookie功能是否已開啓:

  

Js代碼 複製代碼
  1. <script>     
  2.   function CookieEnable()   {   
  3.         var result=false;   
  4.         if(navigator.cookiesEnabled)  return true;   
  5.   
  6.         document.cookie = "testcookie=yes;";   
  7.   
  8.         var cookieSet = document.cookie;   
  9.   
  10.         if (cookieSet.indexOf("testcookie=yes") > -1)  result=true;   
  11.           
  12.          document.cookie = "";   
  13.            
  14.         return result;   
  15. }   
  16.   
  17.       if(!CookieEnable()){   
  18.         alert("對不起,您的瀏覽器的Cookie功能被禁用,請開啓");         
  19.       }   
  20. </script>  

     

     

       以上方法並不是唯一的解決方案、也不是最好的解決辦法,這要根據具體情況而定。總之,我覺得我們改善網站的可用性、易用性,應該建立在禁用js、cookie等的情況下開始,不能讓Cookie和js影響網站的正常功能。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章