搜羅各種方法來判斷浏覽器是否為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浏覽器