Wykrywanie IE6 za pomocą jQuery.wsparcie

Ktoś ma jakieś pomysły jak przetestować coś konkretnego dla IE6 (a nie IE7) używając jquery.wsparcie?

Mój problem polega na tym, że IE6 obsługuje: hover psuedo-class tylko dla elementów kotwiących, a IE7 obsługuje ją dla wszystkich elementów (jak FF, Chrome, itp.). Chcę więc zrobić coś specjalnego w przypadku, gdy przeglądarka nie obsługuje: najedź kursorem na wszystkie elementy... dlatego potrzebuję sposobu na przetestowanie tej funkcji. (nie chcę używać jQuery.przeglądarka). Jakieś pomysły?

Author: Kara, 2009-02-25

8 answers

Chociaż dobrą praktyką jest sprawdzanie obsługi funkcji, a nie agenta użytkownika, nie ma prostego sposobu na sprawdzenie czegoś takiego jak obsługa właściwości css przy użyciu JavaScript. Polecam Ci albo postępować zgodnie z powyższymi sugestiami dotyczącymi używania komentarzy warunkowych lub korzystania z jQuery.przeglądarka. Prosta implementacja (nie sprawdzona pod kątem wydajności lub błędów) może wyglądać tak:

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');
    }
}

W znacznikach dodaj .Klasa jshover do dowolnego elementu, na którym chcesz umieścić efekty css. W css dodaj takie zasady:

ul li:hover, ul li.over { rules here }
 55
Author: FriendOfFuture,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-25 01:28:56

Możesz użyć specjalnego komentarza warunkowego Microsoft Internet Explorer , Aby zastosować określony Kod tylko do IE6.

<!--[if IE 6]>
  Special instructions for IE 6 here... e.g.
  <script>...hook hover event logic here...</script>
<![endif]-->
 21
Author: scunliffe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-23 20:41:35

Thickbox uses

if(typeof document.body.style.maxHeight === "undefined") {
    alert('ie6');
} else {
    alert('other');
}
 20
Author: Andrew,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-04-17 20:47:47

To jest jeden z przykładów, gdzie powinniśmy zrobić krok wstecz i zapytać, dlaczego to robisz.

Zazwyczaj jest to tworzenie menu. Jeśli tak, sugeruję oszczędzić sobie bólów głowy i użyć wtyczki typu superfish lub jednej z wielu alternatyw.

Jeśli nie, sugeruję użycie jQuery Hover () Event listener. Na przykład:

$("td").hover(function() {
  $(this).addClass("hover");
}, function() {
  $(this).removeClass("hover");
});
Zrobię, co zechcesz.
 2
Author: cletus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-25 01:28:00

Użyłbym Whatever: hover - http://www.xs4all.nl / ~peterned/csshover.html

Wykorzystuje zachowanie i działa dobrze dla mnie.

 1
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-06-19 21:39:11

Tylko dla zabawy (nie używając jQuery.wsparcie): {]}

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

Możesz to zrobić również poprzez php

<?
if(preg_match('/\bmsie 6/i', $ua) && !preg_match('/\bopera/i', $ua)){
    echo 'OMG im using IE6';
}
?>
 1
Author: Andres SK,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-03 19:52:54

JQuery.wsparcie nie ma właściwości do wykrycia: wsparcie hover http://docs.jquery.com/Utilities/jQuery.support

Ale prawdopodobnie możesz po prostu użyć zdarzenia hover() http://docs.jquery.com/Events/hover

 0
Author: alex2k8,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-02-25 01:12:37
if ($.browser.msie && parseInt($.browser.version, 10) == 6) {
  alert("I'm not dead yet!"); 
}
 -2
Author: Mithun Sreedharan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-29 12:40:50