最近、Situ Zhengmei js 世界一短い IE ブラウザ判定コード の記事で、わずか 6 バイトで ie か非 ie かを判定する方法を目にしました。コードは次のとおりです:
]
実際には、さまざまな判断方法があり、そのほとんどはブラウザの特性に基づいています。
たとえば、ライブラリのプロトタイプ メソッドは次のとおりです: !!(window.attachEvent && navigator.userAgent.indexOf('Opera') === -1) 。 IE では listen イベントの追加に window.attachEvent をサポートしており、非 IE では listen イベントの追加に window.addEventListener を使用しているという事実に基づいて判断されます。 navigator.userAgent.indexOf('Opera') === -1 は、!!(window.attachEvent) が true の場合、逆に、!window.addEventListener が true の場合、opara ブラウザーは ie に偽装できるためです。
Ext は !"1"[0] を使用していると判断できます。これは、IE が文字列にアクセスするために配列の添字を使用できないことを利用して判断されます。 ie8では問題があるようです。
! [1,] が発見されるまで、IE が垂直タブ文字をサポートしていないことを利用して、IE を判断するための最短の表現が使用されました。
以前は、Opera ブラウザは IE に偽装できるため、document.all という別のメソッドが一般的に使用されていました。次のように記述できます:!!(document.all && navigator.userAgent.indexOf('Opera') === -1)
他にもたくさんあるので、簡単に参照できるように最初にこれらのいくつかを覚えておいてください。仕事。
1.[1,]
2.! "v1"
3.!!(window.attachEvent && navigator.userAgent.indexOf('Opera') = == -1)
4.!!(!window.addEventListener&& navigator.userAgent.indexOf('Opera') === -1)
<script>
if(!+[1,])alert("这是ie浏览器");
else alert("这不是ie浏览器");
</script>5.!!(document.all && navigator.userAgent.indexOf('Opera') === -1)