IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

jquery ne se charge pas


Sujet :

jQuery

  1. #1
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 914
    Par défaut jquery ne se charge pas
    Bonjour tout le monde,

    J'ai vu d'autres fils intitulés pareil, mais ... Il ne m'a pas semblé qu'une réponse s'applique dans tous les cas.

    Hier j'ai passé du temps à me faire les dents sur une histoire de boîte de dialogue pour poser une question à laquelle répondre par oui ou par non. Le type même de chose qu'en VBScript on fait en une seule ligne de commande sans réfléchir, donc ça me désolerait un peu de passer plus d'une semaine dessus en Javascript.

    Voilà comment ça s'est passé : j'ai vu une page web qui proposait une démonstration de l'affaire, ça m'affichait une belle boîte de dialogue. Pas d'événement sur la réponse Non, ça c'est un défaut, mais une fois qu'on en est là il doit y avoir moyen de moyenner.

    J'ai mis le code dans un fichier texte comme ils ont dit : rien. Alors, je me suis dit que j'avais dû oublier un truc.

    Et aujourd'hui j'ai vu un projet qui fait ça avec Bootstrap, alors comme j'ai un peu travaillé avec Bootstrap il n'y a pas si longtemps je m'y intéresse un peu plus. Quelque chose d'intéressant : le site que j'ai vu propose un projet de démonstration à télécharger.

    http://www.webcodegeeks.com/css/boot.../#comment-4530

    et le téléchargement se fait à la quatrième occurrence de "download".

    Eh bien j'ai le bouton, mais il ne déclenche rien, et ça sur deux machines.

    Les outils de débogage de Firefox ne montrent pas les modules jquery dans les sources, dans l'onglet débogueur.

    D'ailleurs, IE8 m'avait déjà mis sur la voie en me disant qu'l y avait une erreur avec Bootstrap : le code Javascript nécessite jquery. ça au bout de pas loin de dix minutes.

    Je me suis méfié d'une lubie du pare-feu, alors j'ai téléchargé jquery-1.10.1.js et jquery-ui.js des versions indiquées dans index.html, je les ai mis dans un répertoire scripts, puis j'ai remplacé les balises script de déclaration de jquery par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        <script src="/scripts/jquery-1.10.1.js" />
        <script src="/scripts/jquery-ui.js" />
    Eh ben pareil.

    Et dans les commentaires les autres disent que ça marche, donc a priori il n'y avait rien à changer, si ce n'est pour améliorer les temps de réponse et s'offrir ses aises pendant le développement.

    A votre avis, qu'est-ce qui peut bien clocher sur mes configs ?

    A propos j'ai vu quelque part (peut-être bien sur le site jquery) qu'on conseille de mettre la balise <script> dans le <body>, pourtant dans le projet de démo ils les mettent bien dans le <head>. Est-ce un point qui mérite qu'on pinaille dessus ?

  2. #2
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 697
    Par défaut
    Citation Envoyé par Gluups Voir le message
    Je me suis méfié d'une lubie du pare-feu, alors j'ai téléchargé jquery-1.10.1.js et jquery-ui.js des versions indiquées dans index.html, je les ai mis dans un répertoire scripts, puis j'ai remplacé les balises script de déclaration de jquery par...
    l'article que tu cites indique qu'il faut mettre la déclaration de jQuery avant celle de Bootstrap.
    est ce que tu as fait comme cela ?

  3. #3
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 914
    Par défaut
    Absolument, en tout cas dans un premier temps. J'ai remplacé les anciennes déclarations par les nouvelles.

    Après, comme ça ne donnait rien, je me suis aventuré à d'autres expériences.

    D'habitude le jquery n'est pas un truc qu'il y a lieu de déclarer dans le registre, pas vrai ?

    Ah je me rappelle : à un moment j'ai mis un alert() avant les déclarations script, et un après.

    J'ai vu celui d'avant, pas celui d'après.

    Pourtant, ce sont les mêmes fichiers jquery pour tout le monde ...

    Sauf que j'ai fini par mettre un alert() dedans pour être avisé quand ça se charge : je n'ai été avisé de rien du tout.

  4. #4
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 697
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 697
    Par défaut
    est ce que tu peux nous montrer une combinaison de code qui ne fonctionne pas ?
    en le mettant sur le site suivant par exemple pour qu'on puisse tester :
    http://codepen.io/pen/

  5. #5
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 914
    Par défaut
    Bonjour,

    Oui, je peux même faire mieux que ça : j'ai fourni le projet complet.

    http://webcodegeeks.javacodegeeks.ne.../11/Modals.zip

    Et semble-t-il les deux instructions qui ne fonctionnent pas sont celles-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
        <script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>

  6. #6
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 914
    Par défaut Ah, il y a du nouveau !
    Bon, je ne sais pas si le coupable s'est senti gêné d'être désigné, toujours est-il qu'à présent jquery se charge.

    En tête du body j'ai ajouté ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        <a href="http://jquery.com/">jQuery</a>    
        <script src="scripts/jquery-1.10.1.js">
        <script src="scripts/jquery-ui.js">
        </script>    
        <script>
             alert("jquery local");
        </script>
    Pour parler franchement l'idée me vient de cette page :
    http://learn.jquery.com/about-jquery/how-jquery-works/

    Et j'ai pourtant l'impression d'avoir "adapté", puisque dans le même temps j'ai laissé les déclarations originales (sur le repository Google) dans le header.

    Dans l'après-midi j'avais essayé de les mettre à la place, mais bootstrap, dont la déclaration vient juste après, continuait de dire qu'il ne trouvait pas jquery.

    Apparemment ce sont les modules locaux qui sont chargés puisque j'ai reconnu les alert() que j'y ai insérées. Si c'est ça il est chargé après bootstrap, logiquement ça ne devrait pas fonctionner, et pourtant si.

    Dans l'après-midi j'ai oublié le s sur le nom du répertoire scripts, mais après je m'en suis rendu compte et j'ai corrigé le chemin. Normalement, ça aurait dû fonctionner quand j'ai rafraichi la page, non ?
    Ah mais ça c'était dans le head. Finalement, ça compte ou pas ?


    Maintenant on va pouvoir parler jquery.

    Le résultat est un peu particulier, je dois dire. Le projet est supposé ouvrir une fenetre modale, qui affiche une vidéo. Or, je vois les messages de chargement dans la barre d'état, puis j'entends le son de la vidéo, mais je me demande où est la fenêtre modale. Je contnue de voir une fenêtre blanche avec un bouton bleu et c'est tout.

    Donc, à ce stade j'ai l'impression que le mieux que j'ai à faire est de redémarrer ma machine et retester.

  7. #7
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 914
    Par défaut
    Bon, ça y est, ça marche.

    Alors dans le body on ne peut charger qu'un module, le premier déclaré.
    Dans l'ordre où je les ai mis ça charge jquery ce qui lui permet de charger la vidéo, mais ça ne charge pas jquery-ui, ce qui fait que la fenêtre ne s'affiche pas.

    Si j'intervertis les deux déclarations, jquery-ui se charge, mais il n'y a pas jquery pour lui envoyer des instructions, donc fonctionnellement il ne se passe rien.

    Une fois que je mets au moins un des deux dans le head, ça marche.

    En fait le mieux c'est avec les deux dans le head comme c'était au départ.

    Bon alors ça marche seulement avec les déclarations en local.

    Est-ce que c'est habituel qu'un projet chargé en local ne fonctionne pas avec les déclarations sur le repository Google ?

  8. #8
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 914
    Par défaut
    J'ai trouvé : pour appeler jquery chez Google ça marche beaucoup mieux en mettant http: au début de l'adresse de chaque repository.

  9. #9
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 212
    Par défaut
    Bonjour,
    ça marche beaucoup meux en mettant http:
    en l’absence de protocol c'est le protocol de ta page qui est utilisé donc si tu est en local en mode file: cela revient à chercher des fichiers qui sont en
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <script src="file://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
    <script src="file://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>

  10. #10
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 914
    Par défaut
    Des sites que j'ai vus il y en a beaucoup qui font ça comme ça. Chez d'autres utilisateurs ça marche, est-ce que ça veut dire qu'ils ont déclaré les fichiers js comme devant être ouverts avec le protocole http ?

    En fait, quand ils sont en local, on les ouvre bien avec le protocole file et ça marche. Est-ce que je dois installer différemment ?



    Je suis peut-être un enfant gâté, finalement : sur ASP.Net il y a pas mal de boulot à fournir, mais on fait ce qui est dit dans la doc, et ça donne le résultat annoncé. J'avoue que perso, c'est comme ça que je trouve ça amusant à faire.

  11. #11
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    un path relatif indique que le fichier se trouve sur le serveur ...
    donc que les fichiers jquery ont été placés sur le serveur et non chargés depuis un CDN...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  12. #12
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 914
    Par défaut
    Oui, et un chemin absolu, logiquement, part de la racine du site, donc dans aucun des deux cas on ne va chercher sur un autre domaine. Je me demande d'où vient cette mode d'oublier de mettre http: et de laisser les lecteurs deviner pourquoi le projet ne tourne pas.

    Sinon depuis j'ai trouvé un site sérieux pour apprendre le jquery :
    http://www.tutorialspoint.com

    Quelque chose que je trouve appréciable : quand on fait ce qu'ils disent, ça donne ce qu'ils disent.

  13. #13
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 212
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 212
    Par défaut
    Lorsque l'adresse commence par un // cela correspond à une URL relatives au protocole ce qui permet dans le cas d'un site en https: d'aller chercher une ressource en https et idem pour http:, cela permet d'avoir une cohérence dans les ressources.

    Sinon depuis j'ai trouvé un site sérieux pour apprendre le jquery
    Il existe également

    sans oublier
    Les cours
    La FAQ jQuery
    • et bien sûr les réponses sur le forum.

  14. #14
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 914
    Par défaut
    Ah, d'accord, donc pour que ça marche il aurait fallu que je crée un répertoire ajax.googleapis.com à la racine de mon disque, pour y recréer l'arborescence.
    ça vaudrait le coup de le dire, quand on met le code à la disposition de débutants.
    Une fois ceci fait, effectivement ça peut être une solution pas mauvaise, parce qu'avec le même chemin, sur la machine du développeur on utilise la bibliothèque en local, et après déploiement on utilise le "repository" Google directement, sans avoir à retoucher la page, sur le même principe que les chemins relatifs quand on publie la ressource avec le site.

    Merci beaucoup pour cette explication, ça valait le coup de l'attendre deux jours ...

    *

    Effectivement j'ai fini par me rappeler qu'il y avait des topos ici, sur lesquels on m'a demandé mon avis en plus. Il faudra bien que je finisse par trouver un moment pour aller voir.

  15. #15
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 914
    Par défaut
    Citation Envoyé par NoSmoking Voir le message
    Bonjour,en l’absence de protocol c'est le protocol de ta page qui est utilisé donc si tu est en local en mode file: cela revient à chercher des fichiers qui sont en
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <script src="file://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
    <script src="file://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
    En relisant le fil je m'aperçois que cette réponse a déjà été donnée il y a deux jours.

    Merci d'avoir répété, la première fois j'étais tellement plongé dans le développement que je n'ai pas accordé une attention suffisante à la discussion.

    Plus exactement, j'ai lu la réponse, mais je n'ai pas compris quoi en faire.

  16. #16
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut


    donc dans aucun des deux cas on ne va chercher sur un autre domaine.
    c'est ton site ???


    il aurait fallu que je crée un répertoire ajax.googleapis.com à la racine de mon disque
    quel intérêt de rappatirer les script jquery alors qu'a la base le but est visiblement d'aller les chercher sur le CDN google api ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  17. #17
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 914
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message



    c'est ton site ???
    En tout cas, l'expérience a montré qu'en protocole file, ce n'était en aucun cas celui de google en direct.

    quel intérêt de rappatirer les script jquery alors qu'a la base le but est visiblement d'aller les chercher sur le CDN google api ?
    Peut-être que ça fonctionne, sans avoir besoin de connexion ?

  18. #18
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Je n'ai jamais tenté de charger un fichier js par télépathie, mais j'ai des doutes quand même ...

    "Charger un fichier" veut dire que le js est chargé en mémoire du navigateur afin d'être interprété.
    Le navigateur doit donc récupérer le script sous forme de texte ...
    En gros pour les scripts externes il y a 3 manière de charger les scripts


    Avec le protocole http:
    le fichier contenant le script peut se trouver physiquement à deux endroits ...
    Sur le même domaine (serveur) que le site ... le script sera alors chargé de façon relative src ="../script.js"
    Sur un autre domaine le script le script sera charge avec une url absolue src="http://www.domaine.com/script.js"

    Avec le protocole file (uniquement en local) :
    le fichier devra se trouver le le même réseau que le fichier appelant, et le niveau de sécurité devra permettre au navigateur d'accéder au fichier.


    On peut également charger un script postérieurement au chargement de page au moyen de XMLHttpRequest (ajax)
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  19. #19
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 914
    Par défaut
    ça marche quand même mieux que par télépathie

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 11/05/2006, 23h04
  2. Internet Explorer ne charge pas le fichier JS
    Par mr32 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 05/02/2006, 12h46
  3. [winXP][plantage] ftlmgr.sys ne charge pas, qui la ?.
    Par arnolem dans le forum Windows XP
    Réponses: 10
    Dernier message: 10/06/2005, 17h35
  4. Réponses: 2
    Dernier message: 21/04/2005, 17h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo