web-dev-qa-db-fra.com

Erreur d'exécution JavaScript: '$' n'est pas défini

Donc, problème classique, mais avoir un temps horrible pour trouver la cause réelle. Généralement, lorsque je vois cette erreur, c'est parce que la référence jQuery se trouve après le code le nécessitant, ou le lien précédent, ou le conflit jQuery, etc. Malheureusement, la recherche de la solution à ce problème m’a amené à publier, après publication, de tels cas. Je suis sûr que mon problème ici est tout aussi simple, mais plus d'une heure de chasse, toujours pas de chance ...

Édition: informations supplémentaires ... Le fichier de solution (que j'ai recréé plusieurs fois en essayant de comprendre cela.) Bibliothèque Windows pour javascript 1.0, j'ai essayé de le supprimer pour le tester également.

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>HTML5 Canvas Template</title>
        <style>
            /* styles here */
        </style>
    </head>
    <body>
        <canvas id="myCanvas" width="500" height="500">
            <p>Canvas not supported.</p>
        </canvas>

        <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function() {
                var canvas = $("#myCanvas").get(0);
                var context = canvas.getContext("2d");

                function renderContent()
                {
                    // we'll do our drawing here...
                }

                renderContent();
            });
        </script>
</body>
</html>
10
RualStorge

Il est indiqué queJQueryl'URL référée n'est pas correcte 

Essaye ça:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
12
coder

J'ai tout essayé ci-dessus et rien ne semble fonctionner jusqu'à ce que je mette cette chaîne 

<script src="../scripts/jquery-2.2.3.min.js" type="text/javascript"></script>

dans la section head du fichier HTML. Alors voici à quoi ça ressemble:

<!DOCTYPE html>
<html>
<head>

    <!-- jQuery Reference -->
    <script src="../scripts/jquery-2.2.3.min.js" type="text/javascript"></script>

    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=Edge" />


    <title>some title</title>

</head>
<body>
...

Et le fichier js se situe à un niveau inférieur au dossier 'scripts' . Enfin, l'erreur a disparu et quel soulagement!

2

Dans mon cas, le problème était que je restituais ma page sur https mais que j'essayais de demander le fichier JQuery sur http, bloqué par de nombreux navigateurs pour des raisons de sécurité.

Ma solution était de changer cela ...

<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>

...pour ça...

<script src="//code.jquery.com/jquery-1.9.1.min.js"></script>

Le navigateur télécharge JQuery en utilisant le même protocole (http ou https) que la page en cours de rendu.

1
Chris Gillum

Certains de mes clients ont eu ce problème, car ils ont apparemment bloqué le chargement de Javascript à partir de sites tiers. Alors maintenant, j'utilise toujours le code suivant pour inclure jQuery:

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
window.jQuery || 
document.write('<script type="text/javascript" src="/js/jquery-1.9.1.min.js">\x3C/script>')
</script>

Cela garantit que, même si mon client bloque le chargement du fichier Javascript à partir du domaine CDN, le client télécharge toujours le fichier depuis mon propre serveur, qui n'est pas bloqué par le navigateur.

1
Pascal Klein

Anover variante, dans mon cas - j'ai été obligé d'utiliser un proxy. So - IE11 -> InternetOptions -> Connexions -> LANSettings-Proxy Server -> UseProxyServer - doit être coché . Vérifiez également la disponibilité de la source de script jQUery, ma variante travaillée sous VS2012 - comme dans l'exemple ci-dessus.

0
user3801205