Liste déroulante sous IE

Eléphanteau du PHP | 38 Messages

22 juin 2007, 18:32

Bonjour à tous,

J'ai une liste déroulante me permettant d'afficher de la couler dans le texte (comme sur ce forum et d'autre très nombreux).

Seulement, sous IE, rien.....je sélectionne du texte, je choisis la couleur, rien, je clique sans sélectionner du texte, rien......

Voila la façon dont j'ai codé la liste :

Code : Tout sélectionner

<select name="color" id="color" value="color"> <option>Couleur</option> <option onClick="javascript:bbcode(\'[color=red]\', \'[/color]\');return(false)"/></a>Rouge</option> <option onClick="javascript:bbcode(\'[color=green]\', \'[/color]\');return(false)"/></a>Vert</option> <option onClick="javascript:bbcode(\'[color=blue]\', \'[/color]\');return(false)"/></a>Bleu</option> <option onClick="javascript:bbcode(\'[color=grey]\', \'[/color]\');return(false)"/></a>Gris</option> </select>
Comme je vous l'ai dit, cela fonctionne sur tous, sauf IE.....

Je ne sais pas si c'est nécessaire, mais voila la fonction bbcode associées :

Code : Tout sélectionner

function bbcode(bbdebut, bbfin) { var input = window.document.formulaire.mess; input.focus(); /* pour IE (toujours un cas a par lui ;) )*/ if( typeof document.selection != 'undefined' ) { var range = document.selection.createRange(); var insText = range.text; range.text = bbdebut + insText + bbfin; range = document.selection.createRange(); if (insText.length == 0) { range.move('character', -bbfin.length); } else { range.moveStart('character', bbdebut.length + insText.length + bbfin.length); } range.select(); } /* pour les navigateurs plus récents que IE comme Firefox... */ else if(typeof input.selectionStart != 'undefined') { var start = input.selectionStart; var end = input.selectionEnd; var insText = input.value.substring(start, end); input.value = input.value.substr(0, start) + bbdebut + insText + bbfin + input.value.substr(end); var pos; if (insText.length == 0) { pos = start + bbdebut.length; } else { pos = start + bbdebut.length + insText.length + bbfin.length; } input.selectionStart = pos; input.selectionEnd = pos; } /* pour les autres navigateurs comme Netscape... */ else { var pos; var re = new RegExp('^[0-9]{0,3}$'); while(!re.test(pos)) { pos = prompt("insertion (0.." + input.value.length + "):", "0"); } if(pos > input.value.length) { pos = input.value.length; } var insText = prompt("Veuillez taper le texte"); input.value = input.value.substr(0, pos) + bbdebut + insText + bbfin + input.value.substr(pos); } }
A noter que j'ai repris cette fonction sur un tuto, et l'ai légèrement modifié pour l'intégrer dans mon forum....car mes connaissances javascripts sont trrrrrrèèèèèèssss limitées !!

Donc, s'il-vous-plait, parlez douuuuuuucement pour les explications :lol: :lol: :wink:

Merci d'avance à tous

Eléphanteau du PHP | 38 Messages

27 juin 2007, 14:44

Up. Personne n'a d'idée ??

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

27 juin 2007, 15:47

Modération :
Krok88, les "up" sont interdits sur PHPFrance.

Si tu n'as pas obtenu de réponse, c'est (au choix) :
- que ta question est mal formulée : reformule-la différemment ;
- que personne ne connaît la réponse ici : faire un "up" ne te donnera pas davantage de résultats ;
- que la réponse demandée exige un travail important que personne ne va faire à ta place ;
- que trop peu de temps s'est écoulé depuis ton précédent message pour qu'un membre ait pu y répondre.

Merci de prendre le temps de lire les règlements.
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Eléphanteau du PHP | 38 Messages

30 juin 2007, 15:16

Problème résolu.
Pour les intéressé, voila la solution :


<select name="color" id="color" value="color" onChange="javascript : bbcode(this.options[this.selectedIndex].value, \'[/color]\');return(false)">
	<option value="[color=black]">Couleur</option>
	<option value="[color=red]">Rouge</option>
	<option value="[color=green]">Vert</option>
	<option value="[color=blue]">Bleu</option>
	<option value="[color=grey]">Gris</option>
</select>