2010-09-08 13 views
14

Czy istnieje sposób na wykrycie IE7?Jak wykryć IE7 za pomocą javascript lub jquery i dodać klasę do div

Nie mam żadnych problemów z moimi kodami w IE8, ale mam problem z IE7.

Więc pomyślałem, że mogę dodać klasę z jquery, gdy przeglądarka IE7 wykrywa ją przez javascript.

Chcę zmienić

<div id="system"> 

do

<div id="system" class="ie7"> 

Dzięki z góry.

+2

Czy ten problem dotyczy stylów lub JavaScript? Jeśli jest to związane z stylem, powinieneś rozważyć użycie warunkowych komentarzy, takich jak sugerowane.Jeśli jest to JavaScript, powinieneś przeczytać o wykrywaniu cech, które bije na podsłuchiwanie przeglądarki na wiele sposobów. – jwueller

Odpowiedz

9

Można użyć komentarza warunkowego IE, aby dodać klasę poprzez javascript, coś takiego:

<!--[if IE 7]> 
<script type="text/javascript"> 
$(document).ready(function() { 
    $('#system').addClass('ie7'); 
}); 
</script> 
<![endif]--> 
+2

Aha! dzięki. Głupi ja. – shin

9

Można to zrobić tylko z HTML:

css

.ie7{ 
    padding: 0; 
    color: red; 
} 

html

<!--[if IE 7 ]> <div id="system" class="ie7"> <![endif]--> 
<!--[if (gt IE 7)|!(IE)]><!--> <div id="system"> <!--<![endif]--> 
</div> 

Powoduje utworzenie z klasą ie7, jeśli zostało wykonane w programie Internet Explorer 7. Wszystkie inne przeglądarki i IE> 7 utworzyłyby ten element div bez klasy.

+0

Myślę, że on chce rozwiązania jQuery. Jednak twoje rozwiązanie jest lepszym rozwiązaniem, ponieważ użytkownik może wyłączyć obsługę javascript. –

+3

+1. Zwykle robię to w jednym miejscu na '' i używam selektora bezpieczeństwa CSS takiego jak 'body.ie7 # system', aby uniknąć konieczności powtarzania warunkowych komentarzy w całym dokumencie. – bobince

3

Spróbuj tego:

<!--[if IE 7]> 
<script type="text/javascript"> 
    $('#system').addClass('ie7'); 
</script> 
<![endif]--> 
50

jeśli naprawdę chcesz Rozp e to za pomocą javascript, może chcesz sprawdzić wersję takiego:

if (navigator.appVersion.indexOf("MSIE 7.") != -1) 
    $('#system').addClass('ie7'); 
+0

+1 dla rozwiązania, które nie zależy od dostępnych opcji struktury javascript lub warunkowych komentarzy. – blackhawk

9

do wykrycia IE7 wystarczy użyć

if($.browser.msie && parseFloat($.browser.version) < 8){ 
    //do other stuff 
    return; 
} 

Aby zrobić to, co chcesz z nim po prostu:

if($.browser.msie && parseFloat($.browser.version) < 8){ 
    $('#system').addClass('ie7'); 
} 
+0

Masz na myśli <8? – shin

+0

tak, przepraszam, miałem na myśli <8 –

+13

W tym czasie (2 lata później) '.browser' został usunięty z jQuery. – Brad

0

Zauważ, że widok zgodny z IE8 będzie miał także <!--[if IE 7 ]> jako prawdziwy

Powinieneś więc zrobić drugi skok l przetestuj w trybie dokumentu, jeśli nie chcesz, aby zmiany odzwierciedlały się w widoku Compat IE8.

<!--[if IE 7]> 
    <script type="text/javascript"> 
    try 
    { 
    if(document.documentMode!=8){ 
    //Your code comes here 
    } 
    } 
    catch(exception){ 
    } 
    </script> 
<!--<![endif]--> 
Powiązane problemy