web-dev-qa-db-ja.com

jQuery.supportを使用してIE6を検出する

Jquery.supportを使用してIE6(IE7ではなく)に固有の何かをテストする方法についてのアイデアはありますか?

私の問題は、IE6はアンカー要素に対してのみ:hover psuedo-classをサポートし、IE7はすべての要素(FF、Chromeなど)に対してそれをサポートすることです。そのため、ブラウザがすべての要素で:hoverをサポートしていない場合に特別なことをしたいので、この機能をテストする方法が必要です。 (jQuery.browserを使用したくない)。何か案は?

34
Jaime

ユーザーエージェントではなく機能のサポートを確認することをお勧めしますが、JavaScriptを使用してcssプロパティのサポートのようなものを確認する簡単な方法はありません。条件付きコメントの使用に関する上記のポスターの提案に従うか、jQuery.browserを使用することをお勧めします。簡単な実装(パフォーマンスまたはバグが検証されていない)は、次のようになります。

if ($.browser.msie && $.browser.version.substr(0,1)<7) {
  // search for selectors you want to add hover behavior to
  $('.jshover').hover(
    function() {
      $(this).addClass('over');
    },
    function() {
      $(this).removeClass('over');
    }
}

マークアップで、.jshoverクラスを、ホバーcss効果が必要な要素に追加します。 cssで、次のようなルールを追加します。

ul li:hover, ul li.over { rules here }
55
FriendOfFuture

Microsoft Internet Explorer固有の 条件付きコメント を使用して、特定のコードをIE6だけに適用できます。

<!--[if IE 6]>
  Special instructions for IE 6 here... e.g.
  <script>...hook hover event logic here...</script>
<![endif]-->
21
scunliffe

シックボックスは

if(typeof document.body.style.maxHeight === "undefined") {
    alert('ie6');
} else {
    alert('other');
}
20
Andrew

これは、一歩下がって、なぜそうしているのかを尋ねる場所の一例です。

通常、メニューを作成します。もしそうなら、頭痛を省いて superfish のようなプラグインを使用するか、多くの選択肢の1つを使用することを強くお勧めします。

そうでない場合は、 jQuery hover() イベントリスナーを使用することをお勧めします。例えば:

$("td").hover(function() {
  $(this).addClass("hover");
}, function() {
  $(this).removeClass("hover");
});

あなたがしたいことをします。

2
cletus

ただの楽しみのため(jQuery.supportを使用しない):

$(document).ready(function(){
    if(/msie|MSIE 6/.test(navigator.userAgent)){
        alert('OMG im using IE6');
    }
});

Phpでもできます

<?
if(preg_match('/\bmsie 6/i', $ua) && !preg_match('/\bopera/i', $ua)){
    echo 'OMG im using IE6';
}
?>
1
Andres SK

Whatever:hoverを使用します- http://www.xs4all.nl/~peterned/csshover.html

それは振る舞いを使用し、私のためにうまく機能します。

1
Piotr Sarnacki

jQuery.supportには、検出するプロパティがありません:hover support http://docs.jquery.com/Utilities/jQuery.support

しかし、おそらく単にhover()イベントを使用できます http://docs.jquery.com/Events/hover

0
alex2k8