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

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  changement de couleur de police par menu déroulant

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

changement de couleur de police par menu déroulant

n°1318016
Yagmoth
Fanboy
Posté le 03-03-2006 à 17:15:33  profilanswer
 

Bon alors voilà...Je ne sais pas programmer en javascript, tout juste raccommoder ce qui existe déjà... Mon but est de faire qqch qui insère des BBcodes dans un textarea, j'ai trouvé un script qui marche bien (je les accommodé pour les smileys, la mise en gras, italique, l'insertion d'url...). Mais il me reste le problème de permettre le changement de couleur de la police à partir d'un menu déroulant, et je n'y parviens pas. Voici donc le script utilisé :
 

Code :
  1. var isMozilla = (navigator.userAgent.toLowerCase().indexOf('gecko')!=-1) ? true : false;
  2. var regexp = new RegExp("[\r]","gi" );
  3. function storeCaret(selec)
  4. {
  5. if (isMozilla)
  6. {
  7. // Si on est sur Mozilla
  8.  oField = document.forms['news'].elements['newst'];
  9.  objectValue = oField.value;
  10.  deb = oField.selectionStart;
  11.  fin = oField.selectionEnd;
  12.  objectValueDeb = objectValue.substring( 0 , oField.selectionStart );
  13.  objectValueFin = objectValue.substring( oField.selectionEnd , oField.textLength );
  14.  objectSelected = objectValue.substring( oField.selectionStart ,oField.selectionEnd );
  15. // alert("Debut:'"+objectValueDeb+"' ("+deb+" )\nFin:'"+objectValueFin+"' ("+fin+" )\n\nSelectionné:'"+objectSelected+"'("+(fin-deb)+" )" );
  16.  oField.value = objectValueDeb + "[" + selec + "]" + objectSelected + "[/" + selec + "]" + objectValueFin;
  17.  oField.selectionStart = strlen(objectValueDeb);
  18.  oField.selectionEnd = strlen(objectValueDeb + "[" + selec + "]" + objectSelected + "[/" + selec + "]" );
  19.  oField.focus();
  20.  oField.setSelectionRange(
  21.   objectValueDeb.length + selec.length + 2,
  22.   objectValueDeb.length + selec.length + 2);
  23. }
  24. else
  25. {
  26. // Si on est sur IE
  27.  oField = document.forms['news'].elements['newst'];
  28.  var str = document.selection.createRange().text;
  29.  if (str.length>0)
  30.  {
  31.  // Si on a selectionné du texte
  32.   var sel = document.selection.createRange();
  33.   sel.text = "[" + selec + "]" + str + "[/" + selec + "]";
  34.   sel.collapse();
  35.   sel.select();
  36.  }
  37.  else
  38.  {
  39.   oField.focus(oField.caretPos);
  40.  // alert(oField.caretPos+"\n"+oField.value.length+"\n" )
  41.   oField.focus(oField.value.length);
  42.   oField.caretPos = document.selection.createRange().duplicate();
  43.   var bidon = "%~%";
  44.   var orig = oField.value;
  45.   oField.caretPos.text = bidon;
  46.   var i = oField.value.search(bidon);
  47.   oField.value = orig.substr(0,i) + "[" + selec + "][/" + selec + "]" + orig.substr(i, oField.value.length);
  48. //Partie modifiée
  49. //Gestion des retours chariots sous IE
  50. var temp = orig.substr(0,i);
  51. var nbretour =0;
  52. for (var cpt=0;cpt<temp.length;cpt=cpt+1)
  53. {
  54. if(temp.charAt(cpt)=="\n" )
  55. {
  56. nbretour=nbretour+1;
  57. }
  58. }
  59. //Prise en compte des retour chariots dans le placement du curseur
  60. pos = i + 2 + selec.length - nbretour;
  61.   //placer(document.forms['news'].elements['newst'], pos);
  62.   var r = oField.createTextRange();
  63.   r.moveStart('character', pos);
  64.   r.collapse();
  65.   r.select();
  66.  }
  67. }
  68. }


 
Et voilà mon formulaire :
 
 

Code :
  1. <?php
  2. echo '<form name=news action=plop.php><select name=color>';
  3. echo '<option>Changer de couleur</option>';
  4. echo '<option>Blanc</option>';
  5. echo '<option>Noir</option>';
  6. echo '</select>';
  7. echo '<textarea name="newst" id="newst" rows="10" wrap="off" cols="45" style="overflow:auto;"></textarea>';
  8. echo '<input type=submit value=envoyer></form>';
  9. ?>


 
Voilou ;) je serai reconnaissant à toute âme généreuse qui voudra bien me dire ce que je dois modifier dans le formulaire et le script pour que ca fonctionne. Merci d'avance ;)

mood
Publicité
Posté le 03-03-2006 à 17:15:33  profilanswer
 


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

  changement de couleur de police par menu déroulant

 

Sujets relatifs
[C++ débutant] Du texte en couleur dans la console ?couleur de texte dans <option></otpion> de <select>
Menu dynamiqueMenu qui se déroule et qui se saisit!
[Résolu][Html/Javascript] Liens dans menu déroulant dynamiquerendre un menu dynamique et non statique
vlookup, menu deroulant sur diffrente ligneclignotement d'image lors d'un changement de dim de fenetre
Plus de sujets relatifs à : changement de couleur de police par menu déroulant


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR