|
雖然我們很少會去禁用javaScript,但我們?yōu)榱藢崿F(xiàn)一些好的用戶體驗、達(dá)到一些網(wǎng)頁效果,或多或少的會用的javaScript、Ajax、cookie等技術(shù)。
可是目前存在的Web攻擊往往利用這些移動代碼(javaScript、cookie、flash、java小程序、ActiveX 等)攻擊客戶端,來達(dá)到非法的目的。于是一些安全意識比較高的用戶利用瀏覽器提供的功能禁用或屏蔽了js、Cookie等。 所以我們有必要判斷客戶端javascript是否被禁用了,提示用戶開啟javaScript功能。請看下面的代碼: <div id= "NoJs" >你已經(jīng)禁用了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> 這段代碼的原理很簡單,即如果執(zhí)行了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> 以上方法并不是唯一的解決方案、也不是最好的解決辦法,這要根據(jù)具體情況而定。總之,我覺得我們改善網(wǎng)站的可用性、易用性,應(yīng)該建立在禁用js、cookie等的情況下開始,不能讓Cookie和js影響網(wǎng)站的正常功能。 |
|
|