1. 程式人生 > >JS判斷當前瀏覽器是否為IE核心

JS判斷當前瀏覽器是否為IE核心

第一種:

if(window.addEventListener){ 
    alert("not ie"); 
}else if(window.attachEvent){ 
    alert("is ie"); 
}else{ 
    alert("這種情況發生在不支援DHTML的老版本瀏覽器(現在一般都支援)") 
}

第二種:

if(document.all){ 
    alert("IE6"); 
}else{ 
    alert("not ie"); 
}    

第三種:

var navigatorName = "Microsoft Internet Explorer"; 
var isIE = false; 
if( navigator.appName == navigatorName ){ 
isIE = true; 
    alert("ie") 
}else{ 
    alert("not ie") 
}

第四種:(推薦)

技術牛人寫的世界上判斷是否IE瀏覽器之最短的js程式碼

if(!+[1,])alert("這是ie瀏覽器"); 
   else alert("這不是ie瀏覽器");

 

 全世界最短IE判定if(!+[1,])的解釋:

<script type="text/javascript">

  alert([1,2]);//相當於alert([1,2].toString()); --這在IE與非IE上都相同,都會彈出"1,2"

  alert([1,]);//相當於alert([1,].toString());--在非IE的標準瀏覽器上,js引擎會自動刪除最後的",",所以在IE上會彈出"1,",而在非IE上會彈出"1"

  alert(+[1,]);// 根據上面的解釋,這一句在IE上相當於alert(+"1,"),而在非IE上相當於alert(+"1"),正號的作用在於試圖將字串轉換為數 字,"1,"當然不是數字,而"1"可以轉換為數字1,所以最終的結果:IE上會轉換失敗彈出"NaN",而非IE瀏覽器上會彈出數字"1"



    //上面的+號轉換字串為數字的測試

    var s = +"5";

    alert(s+1);



    //ok,到這裡為止,我們知道 +[1,] 最終在IE為上NaN,在非IE瀏覽器上則為數字1



    //下面再來看看很有個性的NaN

    alert(NaN==true);//彈出 false

    alert(NaN==false);//彈出 false

    alert(NaN==NaN);//彈出 false


    //即NaN不管與誰比較都是false

    alert(!NaN);//相當於alert(!(NaN==true)),根據上面的解釋當然是彈出true


    //所以,alert(!+[1,]) 最終在IE上會彈出"true",下面再來看看firefox等非IE瀏覽器上的表現

    alert(new Boolean(0));//false

    alert(new Boolean(1));//true

    alert(new Boolean(-1));//true

    //即:數字0會轉換為false,其它任何數字都會轉換為true,所以最終在非IE瀏覽器上最終等效於:

    alert(!1);

    //即

    alert(!true)//最終會得到false


  //綜上所述:下面的這個判斷就能判定瀏覽器是不是IE

  if (!+[1,]){

      alert("我是貨真價實的IE瀏覽器!")

  }

  else{

      alert("我不是IE!")

  }

</script>

 

原文連結:https://www.cnblogs.com/heganlin/p/5889743.html