通常情況下很少使用者會想到禁用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影響網站的正常功能。