Page 1 sur 1

Redirection par menu deroulant

Posté : 13 déc. 2005, 12:37
par YpLee
Bonjour à tous,

J'ai besoin d'un code très simple pour faire une redirection par menu deroulant.

Très simple car il doit être intègré dans un CMS en java qui réécrit la page et enlevant le header et plein de chose.

J'ai pensé à faire quelque chose du genre :

Code : Tout sélectionner

<FORM> <SELECT NAME="ListeUrl" SIZE=1> <OPTION SELECTED VALUE="">-Selectionnez votre destination-</OPTION> <OPTION onClick="javascript:location.href=http://lien1.html">lien 1</OPTION> <OPTION onClick="javascript:location.href=http://lien2.html">lien 1</OPTION> <OPTION onClick="javascript:location.href=http://lien3.html">lien 1</OPTION> </SELECT> </FORM>
Mais ça ne fonctionne pas.
Si quelqu'un à une idée, merci d'avance.

A oui, il doit être compatible Mozilla.

Posté : 14 déc. 2005, 12:45
par daoud
Avec des simples quotes (autour du lien) ça devrait marcher je pense :

<OPTION onClick="javascript:location.href='http://lien1.html'">lien 1</OPTION>

Posté : 14 déc. 2005, 12:52
par Cyrano
Mauvaise méthode. Essaye plutôt:
<form>
  <select name="ListeUrl" size="1" onchange="if(this.value != ''){document.location.href = this.value}">
  <option selected="selected" value="">-Selectionnez votre destination-</option>
  <option value="http://lien1.html">lien 1</option>
  <option value="http://lien2.html">lien 2</option>
  <option value="http://lien3.html">lien 3</option>
  </select>
</form>

Posté : 14 déc. 2005, 13:05
par mere-teresa
onClick n'est effectivement pas adapté pour un menu déroulant.
Un résumé sur ToutJavascript.com

Posté : 14 déc. 2005, 15:33
par nicolas
Mauvaise méthode. Essaye plutôt:
<form>
  <select name="ListeUrl" size="1" onchange="if(this.value != ''){document.location.href = this.value}">
  <option selected="selected" value="">-Selectionnez votre destination-</option>
  <option value="http://lien1.html">lien 1</option>
  <option value="http://lien2.html">lien 2</option>
  <option value="http://lien3.html">lien 3</option>
  </select>
</form>
C'est un peu mieux mais on se trouve avec du javascript dans la page. On ne sépare pas la logique présentation des données et de la navigation. Le plus propre serait de mettre un id sur le select et d'ajouter l'événement onChange sur cet élément en utilisant getElementById au chargement de la page. On ne détecte évidemment pas le chargement de la page avec l'attribut onLoad de la balise body ni avec un javascript en bas de page!

Posté : 14 déc. 2005, 18:18
par YpLee
Merci à tous j'essayerais ça demain !
On ne détecte évidemment pas le chargement de la page avec l'attribut onLoad de la balise body ni avec un javascript en bas de page!

Effectivement mais alors es-ce possible ? je ne peux pas mettre de javascript ailleur que dans du code html sinon le moteur du CMS me le transforme en texte ...

Posté : 15 déc. 2005, 18:06
par YpLee
ça marche super bien !

Merci à vous !