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?
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 }
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]-->
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');
}
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.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.
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';
}
?>
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
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!");
}
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