web-dev-qa-db-fra.com

IE10 et jQuery: SCRIPT5009: "$" n'est pas défini

Je suis confronté à ce problème vraiment ennuyeux, il apparaît dans IE10 comme dans IE9. Compte tenu de ce HTML:

<head>
    <title>Any Consult</title>
    <meta charset="utf-8" />
    <link rel="stylesheet" type="text/css" href="styles.css" />
    <!--[if lte IE 9]>
        <script src="scripts/IE9.js"></script>
    <![endif]-->
    <script type="text/javascript" src="scripts/jquery.js"></script>
    <script type="text/javascript" src="scripts/scripts.js"></script>
</head>

Cela (scripts.js) fonctionne correctement dans FF et Chrome, mais IE10 renvoie l'erreur SCRIPT5009.

scripts.js est comme (exemple simple mais testé):

$(document).ready(function() {
   alert('Hello');
});

IE10 ne charge pas le fichier jQuery et j'ai essayé presque tout. J'ai changé et réduit le nom de fichier, j'ai épargné le

<!--[if lte IE 9]>...

partie, j'ai essayé

src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.10.0.min.js"

mais rien ne s'est passé. Parce que c'est une nouvelle version de cette question , je voudrais préciser:

  1. comment dois-je nommer le fichier jQuery pour IE (10)?
  2. où dois-je mettre les balises de script dans l'en-tête HTML?

Merci beaucoup!

EDIT: Voici la version HTML suggérée, qui ne fonctionne pas aussi:

<script type="text/javascript" src="scripts/jquery.js"></script>
<script type="text/javascript" src="scripts/scripts.js"></script>
<script type="text/javascript" src="scripts/clocks.js"></script>
<!--[if lte IE 9]>
    <script src="scripts/IE9.js"></script>
<![endif]-->
<!--[if IE]><script type="text/javascript" src="scripts/excanvas.js"></script><![endif]-->

IE9.js est un fichier polyfill de navigateur.

Et voici ma capture d'écran ("ist undefiniert" signifie "n'est pas défini", "Die Webseite reagiert nicht" signifie "la page est descendue", "Debugger beenden" signifie "arrête le débogage", $ ('. ALang') est une classe dans mon HTML.

Screenshot IE10 Bug Report

19
BairDev

J'ai eu ce problème avec IE et j'ai trouvé que le fichier jQuery javascript était corrompu dans l'outil de développement IE. Cela était dû dans mon cas à la compression HTTP GZIP étant fait par le serveur mais IE ne décompressait pas le fichier. Je suppose que si vous désactivez la compression HTTP statique ou excluez l'application/x-javascript de tout ce qui fait la compression (la mienne a été effectuée par FluorineFX pour tous les fichiers de plus de 10 Ko), cela devrait fonctionner une fois que vous avez vidé le cache de votre navigateur pour vous débarrasser du fichier javascript compressé.

9
Mike Kokitch

Placez le script conditionnel après la bibliothèque jQuery:

<script type="text/javascript" src="scripts/jquery.js"></script>
<!--[if lte IE 9]>
<script src="scripts/IE9.js"></script>
<![endif]-->
3
BenM