Ouvrir des fenêtres sous plusieurs liens

Ouvrir des fenêtres sous plusieurs liens - HTML/CSS - Programmation

Marsh Posté le 30-09-2006 à 22:58:18    

Bonsoir,
 
J'ai un code en javascript qui ouvre une fenetre :
 
<script type="text/javascript">
function fenetre()
{
dimensions="width=300,height=300,top=50,left=100,screenY=50, screenX=100, resizable=no";
window.open("http://www.domaine.com/infos.php?couleur=????????","Couleur","dimensions,scrollbars=yes,location=yes" );
}
</script>
 
Je voudrais par exemple m'en servir pour avoir des infos sur différentes couleurs :
<a href="javascript:fenetre();">Bleu</a>
<a href="javascript:fenetre();">Rouge</a>
<a href="javascript:fenetre();">Vert</a>
 
Mon souhait serait que l'url de destination du script change en fonction de la couleur choisit, que se soit par exemple :
http://www.domaine.com/infos.php?couleur=bleu pour la couleur bleu
http://www.domaine.com/infos.php?couleur=rouge pour la couleur rouge
http://www.domaine.com/infos.php?couleur=vert pour la couleur verte
 
Je ne suis pas un as en javascript donc si quelqu'un pourrait me donner un coup de main!! Merci.

Reply

Marsh Posté le 30-09-2006 à 22:58:18   

Reply

Marsh Posté le 01-10-2006 à 00:22:02    

Déclaration de la fonction en js :

Code :
  1. function fenetre(couleur)
  2. {
  3. dimensions="width=300,height=300,top=50,left=100,screenY=50, screenX=100, resizable=no";
  4. window.open("http://www.domaine.com/infos.php?couleur="+couleur,"Couleur","dimensions,scrollbars=yes,location=yes"
  5. return false;
  6. );
  7. }


 
et ton code html :

Code :
  1. <a href="http://www.domaine.com/infos.php?couleur=bleu" onclick="return fenetre('bleu')">Bleu</a>


 
Et pas de js dans le href svp!

Reply

Marsh Posté le 01-10-2006 à 08:41:07    

dwogsi a écrit :

Déclaration de la fonction en js :

Code :
  1. function fenetre(href)
  2. {
  3. dimensions="width=300,height=300,top=50,left=100,screenY=50, screenX=100, resizable=no";
  4. window.open(href,"dimensions,scrollbars=yes,location=yes" );
  5. return false;
  6. );
  7. }


 

Code :
  1. <a href="http://www.domaine.com/infos.php?couleur=bleu" onclick="return fenetre(this.href)">Bleu</a>




 
Autant eviter de creer un href et utiliser celui correspondant au lien

Reply

Marsh Posté le 01-10-2006 à 14:36:59    

Oui c'est vrai c'est encore plus simple.
 
Edit :
Ya même une erreur dans la fonction!

Code :
  1. function fenetre(href)
  2. {
  3. dimensions="width=300,height=300,top=50,left=100,screenY=50, screenX=100, resizable=no";
  4. window.open(href,dimensions+", scrollbars=yes,location=yes" );
  5. return false;
  6. );
  7. }

Message cité 1 fois
Message édité par dwogsi le 01-10-2006 à 14:47:30
Reply

Marsh Posté le 01-10-2006 à 15:05:49    

dwogsi a écrit :

Oui c'est vrai c'est encore plus simple.
 
Edit :
Ya même une erreur dans la fonction!

Code :
  1. function fenetre(href)
  2. {
  3. var dimensions="width=300,height=300,top=50,left=100,screenY=50, screenX=100, resizable=no";
  4.     window.open(href,dimensions+", scrollbars=yes,location=yes" );
  5. }
  6. <a href="http://www.domaine.com/infos.php?couleur=bleu" onclick="return fenetre(this.href);return false">Bleu</a>



Voila corrigé :o
le return false doit être dans le onclick, pas dans la fonction qui appelle le onclick.

Reply

Marsh Posté le 01-10-2006 à 15:14:44    

Franchement j'aime pas mettre le return false dans le onclick directement.
J'admet volontier qu'un return false dans la fonction n'est pas logique, mais tellement plus lisible.

Reply

Marsh Posté le 01-10-2006 à 15:38:33    

dwogsi a écrit :

Franchement j'aime pas mettre le return false dans le onclick directement.
J'admet volontier qu'un return false dans la fonction n'est pas logique, mais tellement plus lisible.


 
 
 

Code :
  1. function truc() {
  2.   return false;
  3. }
  4. <a href="#" onclick="truc();">dfdf</a>


Dans ce code, truc retourne false; mais en principe c'est onclick qui doit retourner false; mais là onclick il retourne rien.
 
Il vaut mieux mettre le return false dans le onclick car ainsi tu controles vraiment ce que tu veux faire. Imagine que tu veux que aller sur une page et en meme temps lancer le onclick, ben sans return false tu peux.
 
sinon on pourrait très bien mettre le return false dans la fonction si on fait :  

Code :
  1. function truc() {
  2.   return false;
  3. }
  4. <a href="#" onclick="return truc();">dfdf</a>

Reply

Marsh Posté le 01-10-2006 à 15:42:30    

gatsu35 a écrit :

sinon on pourrait très bien mettre le return false dans la fonction si on fait...


Ba c'est bien ce que j'avais mis au départ.
De toute façon c'est du détail ça.

Reply

Marsh Posté le 01-10-2006 à 16:30:27    

dwogsi a écrit :

Ba c'est bien ce que j'avais mis au départ.
De toute façon c'est du détail ça.


Ah merde j'avais pas vu pardon :o

Reply

Marsh Posté le 02-10-2006 à 09:55:36    

Bon j'ai le droit de jouer moi ???  
Perso j'aurais fait comme ça:

Code :
  1. <a href="http://www.domaine.com/infos.php?couleur=bleu">Bleu</a>
  2. <a href="http://www.domaine.com/infos.php?couleur=Rouge">Rouge</a>
  3. <a href="http://www.domaine.com/infos.php?couleur=Vert">Vert</a>


et pour le js:

Code :
  1. window.onload = function(e){
  2.   var aNodes = document.getElementsByTagName('a');
  3.   for(var i=0; i<aNodes.length; i++){
  4.     if ( aNodes[i].href.indexOf('infos.php?couleur') >= 0 ){
  5.       aNodes[i].onclick = function(e){
  6.          dimensions="width=300,height=300,top=50,left=100,screenY=50, screenX=100, resizable=no";
  7.          window.open(this.href,dimensions+", scrollbars=yes,location=yes" );
  8.          return false;     
  9.       }
  10.     }
  11.   }
  12. }


 
Question de gout hein :o


Message édité par anapajari le 02-10-2006 à 09:56:13
Reply

Marsh Posté le 02-10-2006 à 09:55:36   

Reply

Marsh Posté le 02-10-2006 à 16:23:47    

Franchement je suis pas trop fan.
Ca allège bien le code html mais alors ça allourdi quand même beaucoup le js.

Reply

Marsh Posté le 02-10-2006 à 16:54:58    

Boaah, ça alourdit pas trop. C'est surtout que je l'ai écrit sauce goret là!
Tu mets la fonction "onclick" dans une vraie fonction et c'est mis en cache :o

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed