11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,
J'ai un souci depuis pas mal de temps auquel je ne trouve aucune réponse... Donc me voilà parmi vous Smiley biggrin .

J'utilise un blog wordpress avec une librairie jQuery chargée dans le header. Par ailleurs, comme il est impossible nativement d'exécuter du code php dans une page wordpress, j'utilise un plug-in qui me permet d'appeler une page php extérieure.

Dans cette page php, j'ai une partie JavaScript qui contient mes instructions jQuery. Tout fonctionne, mais je souhaite maintenant externaliser ces instructions JavaScript jQuery dans un fichier js indépendant... Et là cela ne fonctionne plus.

J'ai essayé de référencer ce nouveau fichier dans le header, en tant que nouveau JS à charger lors de l'ouverture de la page. Firebug me dit qu'il le trouve et qu'il le charge, mais les instructions ne sont pas prises en compte dans la page en question...

Du coup, 2 questions (liées):

- Quelle est la bonne méthode pour externaliser un fichier js?
- Est-il possible (et surtout cela répond-il aux bonnes pratiques) de charger un fichier JS externe APRES le header, d'une page php? Je dois dire que je suis un peu perdu...

Merci d'avance pour vos réponses ! N'hésitez pas à me demander plus d'explications si vous le jugez nécessaire.

La page en question si vous voulez allez voir avec Firebug : http://www.nicolasbonniot.com/qui-suis-je
salut

j'en compte 13 dont 2 internes, c'est lequel?

une question, tout ces scripts sont vraiment utiles pour cette page? celui là par exemple

scripts/jd.gallery.js ou encore scripts/jd.gallery.transitions.js

a écrit :
Quelle est la bonne méthode pour externaliser un fichier js?


le code source est correct

<script type="text/javascript" src=""></script> ou <script type="text/javascript"> du javascript</script>


je n'en connais d'autres donc, ce qui est généré est correct

a écrit :
Est-il possible (et surtout cela répond-il aux bonnes pratiques) de charger un fichier JS externe APRES le header, d'une page php?



à prioiri oui mais tout dépend de ce que tu entends par "le header d'une page php"...

tu utilises mootools et jquery sur la même page, est-ce que tu appelles le noConflict de jquery?

et comme tu annonces fiérement que ton blog est optimisé pour firefox, la web develloper me retourne 11 erreurs css...
Perso mes js sont en général tous appellé le plus tard possible, cad avant </body>.
Du javascript qui modifie le DOM doit être effectué après le chargement du DOM, donc si ton code js était dans la page directement juste après tes éléments à modifier, ça devait bien macher. Sauf que si tu utilises ton code dans le <head> à ce moment du rendu de la page tes éléments html ne sont pas chargé. Je te renvois à document ready http://www.google.fr/search?q=javascript+document+ready et aux bonnes pratiques pour les sites webs http://developer.yahoo.com/performance/rules.html (cherche "put js at bottom")
Merci à vous 2 pour ces réponses,
@MoOx : je vais regarder ça de plus près
@keran : étant donné que ça ne fonctionnait pas je l'avais retiré... Maintenant je l'ai remis, tu peux aller voir Smiley cligne ... C'est le script CV.php. Si tu as vu la page avant, tu as du voir que le CV fonctionnait bien, à savoir que les div se cachaient et s'affichaient en fonction des clics. Maintenant, tu verras que tout est affiché sans tenir compte du script.
Concernant ma fière annonce d'optimisation Smiley biggol , j'ai mis en ligne assez récemment et n'ai malheureusement pas eu le temps de tout corriger... Merci toutefois de le porter à mon attention ! Smiley biggrin . Ca fait partie de la TODO.
Concernant la nécessoté de tous ces scripts, c'est vrai, ils ne sont pas tous utiles sur toues les pages. Le souci, c'est qu'ils sont dans le header.php de wordpress et par conséquent chargés à chaque fois... Je n'ai pas encore trouvé de solution élégante pour ne charger que ce qu'il faut en fonction de la page. Si tu as des idées, je suis également preneur.

Merci en tout cas de prendre le temps de regarder mon problème !

Bien cordialement,

Nixar