MODIFIER LE CONTENU D'UN DIV AVEC JAVASCRIPT

NikatorS Messages postés 147 Date d'inscription mercredi 18 septembre 2002 Statut Membre Dernière intervention 15 avril 2011 - 15 avril 2011 à 15:24
lecurieux41 Messages postés 23 Date d'inscription dimanche 11 octobre 2009 Statut Membre Dernière intervention 26 mars 2011 - 7 juin 2011 à 20:22
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/53062-modifier-le-contenu-d-un-div-avec-javascript

lecurieux41 Messages postés 23 Date d'inscription dimanche 11 octobre 2009 Statut Membre Dernière intervention 26 mars 2011
7 juin 2011 à 20:22
Eric,

Merçi beaucoup du renseignement, je ne manquerai pas de suivre ton conseil.

Jacques
LeFauve42 Messages postés 239 Date d'inscription vendredi 20 octobre 2006 Statut Membre Dernière intervention 20 avril 2009
7 juin 2011 à 19:11
Jacques,

Si tu veux trouver des exemples de Javascript contemporain, le plus simple est de regarder les tutoriaux de librairies comme PrototypeJS ou JQuery.

En effet, de nos jours plus personne ne fait du Javascript "de base" sauf pour certains projets particuliers.

Le gros avantage de ces librairies est de se charger de l'interopérabilité entre les différents navigateurs, tout en offrant des fonctions de haut niveau pour gérer les cas les plus courants.

Par exemple, avec PrototypeJS pour modifier le contenu d'une div, ça donnerait ca :



<script type="text/javascript>
$("maDiv").update("Je suis un contenu dynamique !");
</script>

Si tu parles anglais, tu peux aussi t'inscrire aux mailing lists d'aide à Javascript. Même si tu ne postes pas de messages, cést très instructif de lire les problèmes rencontrés par les autres, et les solutions proposées.

Eric
lecurieux41 Messages postés 23 Date d'inscription dimanche 11 octobre 2009 Statut Membre Dernière intervention 26 mars 2011
7 juin 2011 à 18:51
Alain,
Apres examen à tête reposée, il est bien évident que mon code bien que fonctionnant tres bien, contenait beaucoup de globales totalement inutiles puisqu'il n'y a ici qu'une seule fonction ce qui n'était pas le cas dans le script original.
Tout cela est maintenant rectifié et beaucoup plus clair.
J'ai toujours travaillé très vite mais je n'ai plus l'âge et dorénavent je prendrai le temps qu'il faudra.
Merçi pour les conseils et les remarques, il n'est jamais trop tard pour apprendre.
lecurieux41 Messages postés 23 Date d'inscription dimanche 11 octobre 2009 Statut Membre Dernière intervention 26 mars 2011
7 juin 2011 à 17:27
Ah encore une chose, j'ai corrigé 2 erreurs de
manquants dans le code html.
Copier/coller ça va plus vite mais on peut se tromper et comme l'affichage était bon je ne l'ai pas vu.
Maintenant c'est W3C nickel !
lecurieux41 Messages postés 23 Date d'inscription dimanche 11 octobre 2009 Statut Membre Dernière intervention 26 mars 2011
7 juin 2011 à 17:22
J'ai supprimé la fonction getElement pour vous contenter
lecurieux41 Messages postés 23 Date d'inscription dimanche 11 octobre 2009 Statut Membre Dernière intervention 26 mars 2011
7 juin 2011 à 15:58
Merci beaucoup mais une fois de plus je n'ai jamais prétendu qu'il fallait déclarer TOUTES les variables en globales mais qu'il est préférable pour s'y retrouver de déclarer TOUTES LES GLOBALES en début de script.
Désolé si je n'ai pas été assez clair.
Ce qui me console c'est qu'obsolète ou non ça fonctionne très bien.
Je cherche beaucoup sur Internet et suis curieux (évidemment) de savoir ou trouver ces fameuses nouvelles fonctions qui font tout plus "proprement"
Merci
cs_Alain Proviste Messages postés 908 Date d'inscription jeudi 26 juillet 2001 Statut Modérateur Dernière intervention 1 février 2015 2
7 juin 2011 à 15:50
" la plupart des débutants estiment qu'il est plus simple de tout déclarer en local"
je voulais dire "global" bien sur :)
cs_Alain Proviste Messages postés 908 Date d'inscription jeudi 26 juillet 2001 Statut Modérateur Dernière intervention 1 février 2015 2
7 juin 2011 à 15:43
tout ce qu'a dit lefauve42 est juste et témoigne des bonnes pratiques. Ton code est obsolète, de nouvelles fonctions sont maintenant supportées et permettent de faire beaucoup plus "proprement" la même chose que ce que tu proposes. Ce que tu as fait était très bien à l'époque mais javascript est un langage qui évolue très vite parce qu'il est très jeune et du coup, beaucoup de code destiné à des navigateurs dépassés devient lui même dépassé. En fait, sans être sévère, ton code est dépassé depuis 10 ans, et en terme d'ordre de grandeur par rapport à la durée de vie d'internet... je te laisse conclure...

quant aux déclarations des variables... première semaine de cours dans n'importe quelle école qui aborde la programmation : chaque variable doit être déclarée à sa juste portée, ni plus ni moins. tout déclarer en global est une faute de programmation. la plupart des débutants estiment qu'il est plus simple de tout déclarer en local, c'est une réaction naturelle qu'on a tous eu. Maintenant il faut savoir écouter les gens qui ont de l'expérience dans un domaine.

Bon courage
lecurieux41 Messages postés 23 Date d'inscription dimanche 11 octobre 2009 Statut Membre Dernière intervention 26 mars 2011
7 juin 2011 à 15:30
Bonjour mr Proviste,
Pouvez-vous avoir la gentillesse de me faire savoir quelles sont mes mauvaises pratiques et en quoi j'induit les débutants en erreur car ce n'est pas du tout dans mes intentions
Merçi d'avance
lecurieux41 Messages postés 23 Date d'inscription dimanche 11 octobre 2009 Statut Membre Dernière intervention 26 mars 2011
7 juin 2011 à 15:26
Bonjour ZOZOMUSIC,
Pour répondre à tes questions, le fichier js ddaccordion ne sert qu'au fonctionnement du menu de gauche avec lequel on modifie les affichages. Ce menu n'est pas de moi mais provient de Dynamic Drive et il fallait bien un menu pour illustrer le fonctionnement.
Pour le parametrage il y a une ewplication dans le code du menu sur la page html.
-- image 1= Left 1055 Top 180 image 2= Left 1070 Top 560 (positions par défaut) Arguments= contenu,image1,image2,left1,top1,left2,top2-->
les positions par défaut des illustrations à droite
concernent l'affichage présent sur l'écran à l'ouverture de la page.
Les arguments: content0 est le nom du div à afficher quand on clique sur ce bouton du menu.
ensuite la source de l'image 1 ou rien s'il n'y a pas d'image.
La source de l'image 2 ou rien s'il n'y a pas d'image.
les 4 derniers parametres concernent la position de ces 2 images top image 1,left image 1 - top image 2,left image 2 ou bien sur rien s'il n'y a pas d'image à afficher avec ce div. Utiles si les images à afficher sont de dimensions différentes.
J'espère avoir été plus clair.
cs_Alain Proviste Messages postés 908 Date d'inscription jeudi 26 juillet 2001 Statut Modérateur Dernière intervention 1 février 2015 2
6 juin 2011 à 12:10
je pense que je vais supprimer cette source
elle induit trop de débutants en erreur quant aux bonnes pratiques
zozomusic Messages postés 1 Date d'inscription lundi 6 juin 2011 Statut Membre Dernière intervention 6 juin 2011
6 juin 2011 à 12:07
C'est le script que je cherchais ! Merci.
Mais je suis loin d'être au top au niveau programmation. J'ai téléchargé les fichiers, j'ai vu l'exemple en html, mais aucune explication de mise en place :(
Pourquoi 2 fichiers js ? Comment paramétrer les liens de menu (a onclick="AffRubrique('content0','deco0.gif','reader.jpg','','','','');" href="#">Div 1) ?
Idée : mettre les explications dans les 4 div exemples ;)
lecurieux41 Messages postés 23 Date d'inscription dimanche 11 octobre 2009 Statut Membre Dernière intervention 26 mars 2011
5 juin 2011 à 16:40
Merçi pour l'encouragement nicocoooo ça fait plaisir
nicocoooo Messages postés 1 Date d'inscription dimanche 30 janvier 2011 Statut Membre Dernière intervention 24 mai 2011
24 mai 2011 à 21:00
Très utile
lecurieux41 Messages postés 23 Date d'inscription dimanche 11 octobre 2009 Statut Membre Dernière intervention 26 mars 2011
19 avril 2011 à 15:59
Daccord, en réaction j'ai aussi été un peu trop sec !
J'aurais du préciser: Je préfere déclarer les variables GLOBALES en début de script surtout dans une application de plusieurs miliers de lignes et avec un grand nombre de fonctions car sinon cela devient tres difficile de retrouver les variables déclarées implicitement globales dans une fonction quelconque.
Je ne voulais évidemment pas dire que TOUTES les variables devaient être globales.
Dans l'exemple joint il y avait au départ plusieurs autres fonctions et aussi une dizaine de Divs.
J'ai supprimé une partie du code html et javascript qui étaient supperflus ici.
J'aurais aussi du supprimer les globales inutiles mais avec l'age je suis devenu tres distrait.
Encore une chose ce sujet qui ne mérite pas une source a quand même été vu 930 fois et téléchargé 122 fois.
Si j'ai pu faire plaisir à 122 visiteurs en 4 jours je suis content.
Merci pour les remarques.

Jacques
LeFauve42 Messages postés 239 Date d'inscription vendredi 20 octobre 2006 Statut Membre Dernière intervention 20 avril 2009
18 avril 2011 à 16:42
Jacques,

Sauf ton respect, declarer *toutes* les variables en global n'est *jamais* une bonne idee.
Ca fonctionne a peu pres parce que tu as quelques dizaines de lignes de code. Dans une application de plusieurs miliers de lignes, ca devient tout simplement impossible.
De plus, entre declarer une variable en global et ne pas la declarer, ca ne fait aucune difference en Javascript.

Si je peux te donner un conseil, c'est :
- Toujours declarer en variables locales a tes fonctions les variables que tu n'utilises pas dans les autres fonctions.
- Eviter d'utiliser les variables globales, sauf quand c'est vraiment necessaire (par exemple pour partager une valeur entre plusieurs fonctions).

Bon, d'accord ca fait 2 conseils :o)

Desole d'avoir ete un peu sec dans mon premier commentaire, mais je pense qu'il est important de ne pas encourager (surtout aupres des debutants) ce genre de pratiques.
Apres tout, le but de poster son code c'est aussi de recevoir des remarques constructives.

Eric
lecurieux41 Messages postés 23 Date d'inscription dimanche 11 octobre 2009 Statut Membre Dernière intervention 26 mars 2011
18 avril 2011 à 14:24
Bonjour,
Chacun son avis.
Je respecte le votre mais moi je trouve préferable de toujours déclarer les variables en début de script, cela évite souvent des problèmes par après surtout aux débutants.

Jacques
LeFauve42 Messages postés 239 Date d'inscription vendredi 20 octobre 2006 Statut Membre Dernière intervention 20 avril 2009
18 avril 2011 à 11:02
Bonjour,

Je trouve un peu exagere le niveau initie. Surtout que le code contient pas mal de maladresses, comme (entre autre) declarer toutes les variables en global.

Le seul cas ou ce serait interessant d'avoir une variable globale etant de cacher les couteux appels a getElement, mais ce n'est pas fait...

Une autre remarque, la fonction getElement est inutilement couteuse. document.getElementById() est supporte depuis IE5 et sur toutes les versions de Firefox, Chrome, Safari, et opera (pour Opera, je ne suis pas sur du "toutes" mais c'est sans doute supporte sur celles de ces 10 dernieres annees).

Bref, le code pour supporter les 0.000001% de personnes utilisants IE 4 ou Netscape 4 est totalement inutile (pour rappels, ces deux browsers ont ete remplaces par des nouvelles versions (supportant document.getElementById()) respectivement en 1999 et 1998)...

Evidemment, quand on enleve tout ca, il ne reste rien, mais peut-etre que ce sujet ne necessite pas une source...

Eric
lecurieux41 Messages postés 23 Date d'inscription dimanche 11 octobre 2009 Statut Membre Dernière intervention 26 mars 2011
15 avril 2011 à 17:06
Merci et encore toutes mes excuses. La distraction c'est pas toujours marrant !
cs_Alain Proviste Messages postés 908 Date d'inscription jeudi 26 juillet 2001 Statut Modérateur Dernière intervention 1 février 2015 2
15 avril 2011 à 16:20
tadaaa
lecurieux41 Messages postés 23 Date d'inscription dimanche 11 octobre 2009 Statut Membre Dernière intervention 26 mars 2011
15 avril 2011 à 15:50
Est-il possible de le supprimer sur VBFrance ?
lecurieux41 Messages postés 23 Date d'inscription dimanche 11 octobre 2009 Statut Membre Dernière intervention 26 mars 2011
15 avril 2011 à 15:48
Désolé je n'étais en effet pas sur le bon site !
merçi
NikatorS Messages postés 147 Date d'inscription mercredi 18 septembre 2002 Statut Membre Dernière intervention 15 avril 2011
15 avril 2011 à 15:24
Attention lecurieux41, tu as posté sur VB France et ton code est en javascript.
Rejoignez-nous