雖然我們很少會(huì)去禁用javaScript,但我們?yōu)榱藢?shí)現(xiàn)一些好的用戶體驗(yàn)、達(dá)到一些網(wǎng)頁(yè)效果,或多或少的會(huì)用的javaScript、Ajax、cookie等技術(shù)。
可是目前存在的Web攻擊往往利用這些移動(dòng)代碼(javaScript、cookie、flash、java小程序、ActiveX 等)攻擊客戶端,來(lái)達(dá)到非法的目的。于是一些安全意識(shí)比較高的用戶利用瀏覽器提供的功能禁用或屏蔽了js、Cookie等。
所以我們有必要判斷客戶端javascript是否被禁用了,提示用戶開(kāi)啟javaScript功能。請(qǐng)看下面的代碼:
<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>
這段代碼的原理很簡(jiǎn)單,即如果執(zhí)行了javascrpt代碼,id為NoJs的div被隱藏,否則顯示。
下面這段代碼是利用javaScript來(lái)判斷Cookie功能是否已開(kāi)啟:
<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( "對(duì)不起,您的瀏覽器的Cookie功能被禁用,請(qǐng)開(kāi)啟" );
}
</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("對(duì)不起,您的瀏覽器的Cookie功能被禁用,請(qǐng)開(kāi)啟");
}
</script>
以上方法并不是唯一的解決方案、也不是最好的解決辦法,這要根據(jù)具體情況而定??傊?,我覺(jué)得我們改善網(wǎng)站的可用性、易用性,應(yīng)該建立在禁用js、cookie等的情況下開(kāi)始,不能讓Cookie和js影響網(wǎng)站的正常功能。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。