2

この 3 行のコードを使用して、Internet Explorer の下位バージョンを検出します。

<!--[if lt IE 7]><html class="lt-ie8 lt-ie7 lesser-browser get-lost-ie-user please-leave-now"><![endif]-->
<!--[if IE 7]><html class="lt-ie8 ie7"> <![endif]-->
<!--[if !IE]><!--><html class="gtie7"><!--<![endif]-->

javascript を使用して、要素に対して lt-ie8 クラスが有効になっているかどうかを確認するにはどうすればよい<html>ですか?

4

6 に答える 6

3

JavaScript を使用すると、以下を使用できます。

document.getElementsByTagName("html")[0].classList.contains("lt-ie8");

これにより、クラスのリストが得られます。が実装されていない場合classListは、次の方法で確認できます。

if (document.getElementsByTagName("html")[0].className.indexOf("lt-ie8") != -1)
  // The browser...

$.hasClass()または、クラス セットがある場合は jQuery を使用します。

$("html").hasClass("lt-ie8");

したがって、次のように使用できます。

if ($("html").hasClass("lt-ie8"))
  // Class is enabled.
else
  // Class is not there.
于 2013-10-30T15:58:52.630 に答える
1

他の方法のようにDOMを検索する必要がないため、タグdocument.body.parentNodeを取得するために使用します。<html>jQueryhasClassメソッドを再実装することは、javascript クラスが従来のブラウザーでクラスを持っているかどうかを確認する最良の方法です。これは、複数のクラスがある場合、またはクラスが別のクラスの部分文字列である場合、他のメソッドは通常機能しないためです。

ソース

function hasClass(elem, klass) {
    return (" " + elem.className + " ").indexOf(" " + klass + " ") > -1;
}

if (hasClass(document.body.parentNode, "lt-ie8")) {
    // ...
}

最新のブラウザーのみをターゲットにしている場合は、 を使用するclassListのが最適なオプションです。

if (document.body.parentNode.classList.contains("lt-ie8")) {
    // ...
}
于 2013-10-30T16:06:27.977 に答える
0

試す:

if( document.getElementsByTagName("html")[0].className == 'gtie7' )
    alert( 'html has class "gtie7"' );
于 2013-10-30T16:01:39.370 に答える
0
if (document.getElementsByClassName('lt-ie8').length > 0) {
    // EDIT due to the important comment below
    //console.log("you are using a crappy browser");
    alert("you are using a crappy browser");
}
于 2013-10-30T16:00:03.477 に答える
0
var isBrowserCrappy = document.getElementsByTagName('html')[0].className.indexOf('lt-ie8') !== -1;
于 2013-10-30T16:01:00.420 に答える