以下のコードを見つけましたが、理解できません。
if (!-[1, ] && !window.XMLHttpRequest) {
document.execCommand("BackgroundImageCache", false, true);
}
どういうif(!-[1,])意味ですか?ありがとう
以下のコードを見つけましたが、理解できません。
if (!-[1, ] && !window.XMLHttpRequest) {
document.execCommand("BackgroundImageCache", false, true);
}
どういうif(!-[1,])意味ですか?ありがとう
古いInternetExplorerを検出するのはハックです。最新のブラウザ(-[1,]と同様)にありますが、古いIE(否定)にあります。正しい結果を返す最初のバージョンはIE9です。-1false!NaNtrue
その正確なコードは 以外のものを決して生成しないfalseため、入力しても意味がありません。これはレンダリングされた出力であり、サーバー側の変数によっては、異なる場合があると思います。
を使用しているのを見るとwindow.XMLHttpRequest、ブラウザー チェックの形式が悪い可能性もあることがわかります。[1,]配列を作成しますが、末尾のコンマにより、Chrome と Internet Explorer で配列の扱いが異なります。Chrome はこれを 1 つの数値のみの配列として認識し、暗黙的に数値にキャストできますが、IE はこれを数値にキャストできない 2 つの項目を含む配列と見なします。
-[1,0]NaNすべてのブラウザで生成されます。すべてのブラウザで-[1]生成されます。-1したがって、IE では-[1,]生成され (したがってコードが実行されます)、他のブラウザーでは生成されます (コードは実行されません)。NaN-1
これはひどいハックです。使用しないでください。
が機能するかどうかを知りたい場合はwindow.XMLHttpRequest、それ以外のことではなく、具体的にテストしてください。
これは特に悪いコードです:
-[1, ]結果は-1になります。
!-[1, ]常にfalseになります。
[]は配列を意味するので、これは悪いことです。その配列に複数の値がある-場合、NaNが得られます。