Erreur d'exécution JavaScript: '$' est indéfini

C'est donc un problème classique, mais ayant un moment horrible pour trouver la cause réelle. En règle générale, lorsque je vois cette erreur, c'est parce que la référence jQuery est après que le code l'exige ou le lien jQuery, ou jQuery, etc … jusqu'à présent, aucun d'entre eux ne semble être le cas. Malheureusement, chercher la solution à ce problème m'a amené à poster après la publication de tels cas. Je suis sûr que mon problème est tout aussi simple, mais plus d'une heure de chasse, toujours pas de chance …

Edit: Informations supplémentaires … Le fichier de solution (que j'ai recréé à plusieurs reprises en essayant de comprendre cela. Est-ce que le modèle de l'application Windows Windows Store vierge et je le fais dans Visual Studio. Les seuls fichiers de référence sont Windows Library for Javascript 1.0, j'ai essayé de supprimer cela pour tester aussi.

<!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> 

Il est indiqué que JQuery indiqué l'URL n'est pas correct

Essaye ça:

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

Dans mon cas, le problème était que je rendais ma page sur https mais j'essayais de demander le fichier JQuery sur http, qui est 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> 

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

Anover variant, dans mon cas – j'ai été obligé d'utiliser le proxy. Donc – IE11 -> InternetOptions -> Connexions -> LANSettings-Proxy Server -> UseProxyServer – doit être vérifié. Vérifiez également la disponibilité de la source du script jQUery, ma variante travaillée dans VS2012 – comme l'exemple supérieur

Certains de mes clients ont eu ce problème, car apparemment ils ont 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 du domaine CDN, le client télécharge toujours le fichier de mon propre serveur, qui n'est pas bloqué par le navigateur.

J'ai essayé tout ce qui précède et rien ne semble fonctionner jusqu'à ce que je mets cette ficelle

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

Dans la partie tête du fichier HTML. Alors voici comment ça se passe:

 <!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 trouve à un niveau inférieur dans le dossier 'scripts'. Enfin, l'erreur a disparu et quel soulagement!

J'avais ce même code d'erreur:

(Erreur: 'generateText' est indéfini)

… sur le code

var bodyText=["The....now."]

J'ai découvert sur mon éditeur de texte (Notepad ++), lorsque vous tapez de nombreuses lignes de texte directement dans la partie supérieure de la variable bodyText , si je n'ai pas frappé le return carriage (enter ==> WordWrap est désactivé), il suffit de taper sans return carriage Et laissez l'éditeur ajuster le texte, cela a-t-il fonctionné?

Doit être dans les paramètres de Notepad ++ ??