天天看點

【js】判斷浏覽器是否IE浏覽器

搜羅各種方法來判斷浏覽器是否為ie浏覽器

1.最簡單的

局限:本判斷方法經過判斷在ie7  ie8  ie8相容模式  

   在ie9  ie10   ie11 不起作用

解釋:

  

<code>  alert([1,2]);</code><code>//相當于alert([1,2].tostring()); --這在ie與非ie上都相同,都會彈出"1,2"</code>

<code>  alert([1,]);</code><code>//相當于alert([1,].tostring());--在非ie的标準浏覽器上,js引擎會自動删除最後的",",是以在非ie上會彈出"1",而在ie上會彈出"1,"</code>

<code>  alert(+[1,]);</code><code>// 根據上面的解釋,這一句在ie上相當于alert(+"1,"),而在非ie上相當于alert(+"1"),正号的作用在于試圖将字元串轉換為數 字,"1,"當然不是數字,而"1"可以轉換為數字1,是以最終的結果:ie上會轉換失敗彈出"nan",而非ie浏覽器上會彈出數字"1"</code>

<code>  alert(nan==</code><code>true</code><code>);</code><code>//彈出 false</code>

<code>  alert(nan==</code><code>false</code><code>);</code><code>//彈出 false</code>

<code>  alert(nan==nan);</code><code>//彈出 false</code>

  可以發現,nan無論和誰比較傳回都是false

<code>  alert(!nan);</code><code>//相當于alert(!(nan==true)),根據上面的解釋當然是彈出true</code>

<code>  //是以,alert(!+[1,]) 最終在ie上會彈出"true",下面再來看看firefox等非ie浏覽器上的表現</code>

<code>  alert(</code><code>new</code> <code>boolean(0));</code><code>//false</code>

<code>  alert(</code><code>new</code> <code>boolean(1));</code><code>//true</code>

<code>  alert(</code><code>new</code> <code>boolean(-1));</code><code>//true</code>

<code>  //即:數字0會轉換為false,其它任何數字都會轉換為true,是以最終在非ie浏覽器上最終等效于:</code>

<code>  alert(!1);</code>

<code>  //即</code>

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

<code>  //綜上所述:下面的這個判斷就能判定浏覽器是不是ie</code>

<code>  if</code> <code>(!+[1,]){</code>

<code>      </code><code>alert(</code><code>"是ie浏覽器!"</code><code>)</code>

<code>  }</code>

<code>  else</code><code>{</code>

<code>      </code><code>alert(</code><code>"不是ie!"</code><code>)</code>

2.可以測試所有ie浏覽器