Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4132 connectés 

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  changer la source d'un javascript

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

changer la source d'un javascript

n°674774
le_zell
Posté le 16-03-2004 à 09:10:36  profilanswer
 

Bonjour a tous !
 
Petit souci pour un de mes scripts  
 
Soit un script de type :  
 
<script id="monscript" language="JavaScript" type="text/javascript" src="../js/monscript.php?p=1"></script>
 
L'utilisateur change des paramètres et alors je veux changer la source de ce script :
 
if (document.all) document.all("monscript" ).src="../js/monscript.php?p=2";
 
Tout cela marche presque parfaitement sauf que monscript.php s'affiche bien au chargement de la page et que lorsque je change la source il ne se passe rien...Il faudrait que je fasse un truc du genre reload sur le script (document.all("monscript" ).reload(): deja essayé mais marche pas).
 
Ma question : comment changer la source d'un javascript et qu'il se recharge sans que la page soit rechargée ?
 
Merci a tous !

mood
Publicité
Posté le 16-03-2004 à 09:10:36  profilanswer
 

n°674785
Docteur_Ca​nard
Posté le 16-03-2004 à 09:34:07  profilanswer
 

J'ai ça mais ça ne marche que sous IE :
 
HTML :
 

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html>
  3. <head>
  4. <title>Déplacement</title>
  5. <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
  6. <script type="text/javascript" id="monscript" src="script1.js"></script>
  7. <script type="text/javascript">
  8. <!--
  9. theScript=document.getElementById('monscript');
  10. function changeSource(val)
  11. {
  12.   switch(val)
  13.   {
  14.     case 1:
  15.       theScript.src="script1.js";
  16.       break;
  17.     case 2:
  18.       theScript.src="script2.js";
  19.       break;
  20.     default:
  21.   }
  22. }
  23. -->
  24. </script>
  25. </head>
  26. <body>
  27. <p>
  28. <a href="" onclick="plop(); return false">Test</a><br />
  29. <a href="" onclick="changeSource(1); return false">Source 1</a>
  30. <a href="" onclick="changeSource(2); return false">Source 2 </a>
  31. </p>
  32. </body>
  33. </html>


 
script 1 :
 

Code :
  1. fuction plop()
  2. {
  3.   alert('coin !');
  4. }


 
Script 2
 

Code :
  1. function plop()
  2. {
  3.   alert('pan !');
  4. }


 
Si quelqu'un a une solution crossbrower [:spamafote]
 
Mais est-ce qu'il n'y a pas moyen de concevoir tes scripts de manière à éviter le rechargement ?


Message édité par Docteur_Canard le 16-03-2004 à 09:40:22
n°674791
le_zell
Posté le 16-03-2004 à 09:46:58  profilanswer
 

Salut et merci a toi,
 
Ton script est identique au mien...
 
Pour répondre à ta question, je ne peux pas changer la nature de mon script js/php, il affiche les news et je voudrais que si l'utilisateur change des parametres d'un formulaire (couleur de police, taille, etc) le script change d'aspect en temps réel . Tu vois, sinon il y a une solution tres simple, l'utilisateur valide le formulaire et on reaffiche le script avec les parametres choisis précdemment mais je trouve dommage qu'il faille recharger la page...
 

n°674803
le_zell
Posté le 16-03-2004 à 10:05:15  profilanswer
 

Voila mon code a moi :  
 

Code :
  1. <select name="select_couleur" onChange="javascript:maj_news(this.options[this.selectedIndex].value)">
  2. <option value="FF0000">Rouge</option>
  3. <option value="00FF00">Vert</option>
  4. <option value="000FF">Bleu</option>
  5. </select>
  6. <script language="JavaScript" id="div_news" type="text/javascript" src="../js/news.php?code=FF0000>"></script>
  7. <script language="JavaScript">
  8. function maj_news(code){
  9. var d = document;
  10. if (d.all) d.all("div_news" ).src="../js/news.php?code="+code;
  11. if (d.getElementById) d.getElementById("div_news" ).src="../js/news.php?code="+code;
  12. }
  13. </script>


Message édité par le_zell le 16-03-2004 à 10:06:13
n°674828
Docteur_Ca​nard
Posté le 16-03-2004 à 10:36:08  profilanswer
 

le_zell a écrit :

Salut et merci a toi,
 
Ton script est identique au mien...
 
Pour répondre à ta question, je ne peux pas changer la nature de mon script js/php, il affiche les news et je voudrais que si l'utilisateur change des parametres d'un formulaire (couleur de police, taille, etc) le script change d'aspect en temps réel . Tu vois, sinon il y a une solution tres simple, l'utilisateur valide le formulaire et on reaffiche le script avec les parametres choisis précdemment mais je trouve dommage qu'il faille recharger la page...
 
 


 
Si c'est juste pour changer l'aspect du formulaire, ça peut se faire en un seul script :
 

Code :
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  2. <html>
  3. <head>
  4. <title>Déplacement</title>
  5. <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
  6. <style type="text/css">
  7. <!--
  8. #zone
  9. {
  10.   width:100px;
  11.   height:100px;
  12.   text-align;center;
  13.   color:#000000;
  14.   background:#FFFFFF;
  15. }
  16. -->
  17. </style>
  18. <script type="text/javascript">
  19. <!--
  20. function changeCouleur(val)
  21. {
  22.   theZone=document.getElementById('zone');
  23.   switch(val)
  24.   {
  25.   case '1':
  26.     theZone.style.background='#0000FF';
  27.     theZone.style.fontSize='12pt';
  28.     theZone.style.fontFamily='serif';
  29.     break;
  30.   case '2':
  31.     theZone.style.background='#FFFFFF';
  32.     theZone.style.fontSize='16pt';
  33.     theZone.style.fontFamily='sans-serif';
  34.     break;
  35.   default:
  36.   }
  37. }
  38. -->
  39. </script>
  40. </head>
  41. <body>
  42. <p>
  43. <div id="zone">Ma Zone</div>
  44. <a href="" onclick="changeCouleur('1'); return false">Option 1</a>
  45. <a href="" onclick="changeCouleur('2'); return false">Option 2</a>
  46. </p>
  47. </body>
  48. </html>


 
(Marche sous IE et Moz)
 
A adapter avec plusieurs éléments. Tu peux également utiliser des cookies pour qu'on se souviene du choix d'une page à une autre.

n°674926
VinceG
Posté le 16-03-2004 à 12:28:22  profilanswer
 

Pour forcer le rechargement du script à chaque chargement de la page, il suffit d'avoir une URL toujours différente (en rajoutant la date et l'heure par exemple. Ainsi

Code :
  1. src="../js/news.php?code=FF0000"


 
devient
 

Code :
  1. src="../js/news.php?code=FF0000&date=200403161223300"


 
Ton url étant différente à chaque chargement de la page, le JS sera automatiquement rechargé.
En revanche, il faut pouvoir insérer la date à ton URL, tu peux le faire grâce à ce genre de code:
 

Code :
  1. document.write("src=\"../js/news.php?code=FF0000&date=" + laDate + "\"" );


 

n°675192
le_zell
Posté le 16-03-2004 à 16:47:05  profilanswer
 

euh non c pas pour changer l'aspect d'un element de formulaire ca je sais pas faire pas de problème ct pour changer la source d'un javascript avec des parametres selectionnés par l'utilisateyr via des menu déroulants d'un formulaire.
 
:D

n°675193
le_zell
Posté le 16-03-2004 à 16:49:01  profilanswer
 

Merci pour ta réponse VinceG, mais tu mas mal compris...
 
Ce n'est pas pour forcer le rechargement du script a chaque rechargement de page ca c'est pour eviter la mise en cache et je sais faire t'inquiete pas...
 
moi je veux forcer le rechargement d'un script javascript si on lui a change sa source...son src...
 
ok ?
 

n°675213
VinceG
Posté le 16-03-2004 à 17:24:55  profilanswer
 

Je viens de relire ton premier post, et en effet j'avais mal compris. Par contre je ne pense pas que ce soit faisable directement. Parce que les scripts sont chargés juste après le chargement d'une page et non lors de leur appel.
Je vois bien une solution, mais je la trouve pas très propre. Ca fait un peu bidouille et je ne sais même pas si les IFrame sont dans le W3C, et si ca marche sous Mozilla. Le truc, c'est que tu pourrais recharger une IFrame invisible qui ferait appel à ton JS. Dès que l'utilisateur change de sélection, tu recharges l'Iframe avec les bons paramètres, ce qui force le rechargement du script associé.
En espérant que mon idée (bidouille) te mettra sur la voie...
 
A+.

n°675921
le_zell
Posté le 17-03-2004 à 10:33:00  profilanswer
 

Et bien VinceG c'est exactement l'option que j'ai développée et ca marche sous IE / Moz. Comme c'est un espace reservé à des admins je suppose qu'ils doivent avoir une version recente de navigateurs...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  changer la source d'un javascript

 

Sujets relatifs
[JAVASCRIPT] problème de compatibilité du code entre IE<--> Mozilla[Javascript] récupérer la longueur du texte d'un DIV
Insertion de tag par javascriptChanger le curseur en un curseur animé (.ani) dans une applet
[JAVA - JAVASCRIPT] Ouvrir la Sun Java Console [Résolu]recuperer en javascript pour affecter à une variable php possible ??
recherche de source : gestion avancée de tableau/grille[JavaScript] Copier un texte quand on click sur une image
Menu en javascriptJukeBox en JavaScript
Plus de sujets relatifs à : changer la source d'un javascript


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)