2011-03-31 13 views
10

Es posible cargar un script única en IE con los comentarios condicionales¿Cómo no cargar un script en IE?

<!--[if lte IE 7]> 
    <script type="text/javascript" src="somescript.js"></script> 
<![endif]--> 

pero lo que si No quiero cargar en IE lte 7 (pero todavía lo necesitan en todos los demás navegadores) ?

¿Alguna solución simple?

P.S. Tengo un problema con SyntaxHighlighter: demasiados códigos ralentizan IE7 y, como me falta tiempo, decidí apagarlo en IE7 por ahora.

+0

¿Está utilizando un lenguaje de servidor para generar sus páginas, o se trata de HTML puro? –

+0

Funciona en PHP –

Respuesta

18

This post dice que usted puede utilizar el operador ! (NO) como [if !IE]

+1

Heh, ¿podría ser más simple?) Vives y aprendes. ¡Gracias! –

+0

Saludos desde 2014! Por alguna razón '[if! IE]' no parece funcionar para mí. Cualquier apunta a alguien? –

4
<!--[if gte IE 7]> 
    <script type="text/javascript" src="somescript.js"></script> 
<![endif]--> 
<!--[if !IE]> 
    <script type="text/javascript" src="somescript.js"></script> 
<![endif]--> 
+2

¿No funcionará esto solo en versiones de IE mayores que 7? Firefox lo verá todo como un comentario. –

+0

Ese es un buen punto, actualizado con un condicional de nivel inferior revelado. – yzxben

1

Usted podría intentar detectar el servidor del lado del navegador y luego repetir el script adecuado incluye.

A continuación tiene un ejemplo en la detección del navegador simplista en PHP:

http://www.php-scripts.com/20050912/12/

5
<![if !IE]> 
    <script type="text/javascript" src="somescript.js"></script> 
<![endif]> 
+0

No creo que sea un código válido. ¿Los comentarios condicionales siempre comienzan y terminan como los comentarios normales ()? En este ejemplo: lindhe

+0

Este es un [comentario revelado en el nivel inferior] (http://msdn.microsoft.com/en-us/library/ms537512 (v = vs.85) .aspx # dlrevealed) y es válido en todos los navegadores. –

3

Esta sintaxis funciona bien (la secuencia de comandos no se comentó en Firefox, Chrome, etc.):

<!--[if !IE]><!--> 
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script> 
<!--<![endif]--> 
0

He utilizado los ejemplos que se muestran aquí y en otros lugares, y es realmente frustrante ver cuántos lugares este ejemplo de código está en mal estado. Resulta que la respuesta es simple, IE tiene 'condicionales' especiales como [si IE], pero otros navegadores necesitan comentarios para trabajar con los 'condicionales'.

Por ejemplo, desde JQuery 2 no funciona con Internet Explorer 8, puede hacer algo como esto

<!--[if IE ]> (following is only visible to IE) 
    <script src="./js/lib/jquery-1.6.1.min.js"></script> 
<![endif]--> 
<!--[if !IE]>--> (extra comment - only visible to non-IE) 
    <script src="./js/lib/jquery-2.1.1.min.js"></script> 
    <script src="./js/lib/jquery.mobile-1.4.5.min.js"></script> 
<!--<![endif]--> 

he verificado lo anterior funciona en Firefox, Chrome, Internet Explorer 8, Dolphin móvil, y Chrome móvil. También puedes especificar la versión. Por ejemplo, menos de IE 9 sería: <!--[if lt IE 9 ]>

Para una explicación detallada, echa un vistazo a http://www.sitepoint.com/web-foundations/internet-explorer-conditional-comments/

Cuestiones relacionadas