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

來源:互聯網
上載者:User
通常情況下很少使用者會想到禁用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>  
<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代碼
  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>  
<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影響網站的正常功能。 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.