Подтвердить что ты не робот

Обнаружение IE6 с помощью jQuery.support

У кого-нибудь есть идеи о том, как тестировать что-то конкретное для IE6 (а не IE7) с помощью jquery.support?

Моя проблема в том, что IE6 поддерживает: hover psuedo-class только для элементов привязки, а IE7 поддерживает его для всех элементов (как FF, Chrome и т.д.). Поэтому я хочу сделать что-то особенное, если браузер не поддерживает: наведите указатель на все элементы... таким образом, мне нужен способ проверить эту функцию. (не хотите использовать jQuery.browser). Любые идеи?

4b9b3361

Ответ 1

Хотя хорошей проверкой на поддержку функций, а не на агента пользователя, нет простого способа проверить что-то вроде поддержки свойства css с использованием JavaScript. Я рекомендую вам либо следовать приведенным выше плакатам, предлагая использовать условные комментарии, либо использовать 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 }

Ответ 3

Thickbox использует

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

Ответ 4

Это один из примеров того, где мы должны сделать шаг назад и спросить, почему вы это делаете.

Обычно это создает меню. Если это так, я настоятельно рекомендую вам избавиться от головных болей и использовать плагин, например superfish или один из многих альтернатив.

Если нет, я предлагаю вам использовать jQuery hover() прослушиватель событий. Например:

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

сделает то, что вы хотите.

Ответ 6

Просто для удовольствия (не используя 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';
}
?>

Ответ 8

if ($.browser.msie && parseInt($.browser.version, 10) == 6) {
  alert("I'm not dead yet!"); 
}