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

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  bbcode et javascript -> un petit script avec un petit bug ... mais où?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

bbcode et javascript -> un petit script avec un petit bug ... mais où?

n°1361401
xadawa
Put1 2 Pc 2 MrDeeuuuhhh !!!
Posté le 07-05-2006 à 18:59:47  profilanswer
 

Voilà mon problème, je cherche à mettre du bbcode dans un textarea. J'utilise pour çà une petite fonction qui insère du bbcode à partir de bouton com sur ce forum. Sauf que celle ci marche pour des balise de type [b] [ / b] ou encore [url] [ / url] ( sans les espaces bien sur ). Sauf qe lorsque je veux passer à des balises du genre [color=#00e21c][ / color], il voudrait m'insérer [color=#00e21c][ / color=#00e21c].  
 
Je vous met donc la fonction que j'utilise. Je l'ai récupérer sur le net. Pour palier à ce pb, j'ai pensé à donner un deuxième argument à ma fonction pour lui donner le contenu de la balise de début et celle de fin. C'est ici que provient le hic ... lorsque je survole mes liens il m'affiche :

Code :
  1. javascript:storeCaret(


 
Le code parlera mieux que moi :  
 
var isMozilla = (navigator.userAgent.toLowerCase().indexOf('gecko')!=-1) ? true : false;
var regexp = new RegExp("[\r]","gi" );
 

Code :
  1. function storeCaret(selec,special)
  2. {
  3. if (isMozilla)
  4. {
  5. // Si on est sur Mozilla
  6.  oField = document.forms['form'].elements['contenu'];
  7.  objectValue = oField.value;
  8.  deb = oField.selectionStart;
  9.  fin = oField.selectionEnd;
  10.  objectValueDeb = objectValue.substring( 0 , oField.selectionStart );
  11.  objectValueFin = objectValue.substring( oField.selectionEnd , oField.textLength );
  12.  objectSelected = objectValue.substring( oField.selectionStart ,oField.selectionEnd );
  13. // alert("Debut:'"+objectValueDeb+"' ("+deb+" )\nFin:'"+objectValueFin+"' ("+fin+" )\n\nSelectionné:'"+objectSelected+"'("+(fin-deb)+" )" );
  14.  oField.value = objectValueDeb + "[" + selec + "]" + objectSelected + "[/" + special + "]" + objectValueFin;
  15.  oField.selectionStart = strlen(objectValueDeb);
  16.  oField.selectionEnd = strlen(objectValueDeb + "[" + selec + "]" + objectSelected + "[/" + special + "]" );
  17.  oField.focus();
  18.  oField.setSelectionRange(
  19.   objectValueDeb.length + selec.length + 2,
  20.   objectValueDeb.length + special.length + 2);
  21. }
  22. else
  23. {
  24. // Si on est sur IE
  25.  oField = document.forms['form'].elements['contenu'];
  26.  var str = document.selection.createRange().text;
  27.  if (str.length>0)
  28.  {
  29.  // Si on a selectionné du texte
  30.   var sel = document.selection.createRange();
  31.   sel.text = "[" + selec + "]" + str + "[/" + special + "]";
  32.   sel.collapse();
  33.   sel.select();
  34.  }
  35.  else
  36.  {
  37.   oField.focus(oField.caretPos);
  38.  // alert(oField.caretPos+"\n"+oField.value.length+"\n" )
  39.   oField.focus(oField.value.length);
  40.   oField.caretPos = document.selection.createRange().duplicate();
  41.   var bidon = "%~%";
  42.   var orig = oField.value;
  43.   oField.caretPos.text = bidon;
  44.   var i = oField.value.search(bidon);
  45.   oField.value = orig.substr(0,i) + "[" + selec + "][/" + special + "]" + orig.substr(i, oField.value.length);
  46.   var r = 0;
  47.   for(n = 0; n < i; n++)
  48.   {if(regexp.test(oField.value.substr(n,2)) == true){r++;}};
  49.   pos = i + 2 + selec.length - r;
  50.   //placer(document.forms['news'].elements['newst'], pos);
  51.   var r = oField.createTextRange();
  52.   r.moveStart('character', pos);
  53.   r.collapse();
  54.   r.select();
  55.  }
  56. }
  57. }


 
et voici mes boutons pas encore fini...

Code :
  1. <div align=\"center\">
  2.    <center>
  3.    <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">
  4.      <tr>
  5.        <td width=\"100%\" align=\"center\">
  6.    <a href=\"javascript:storeCaret(\"b\",\"b\" );\"><img style=\"background-color: #FFFFFF\" border=\"1\" src=\"img_bbcode/bold.gif\" width=\"21\" height=\"22\"></a>&nbsp;
  7.          <a href=\"javascript:storeCaret(\"i\",\"i\" );\"><img style=\"background-color: #FFFFFF\" border=\"1\" src=\"img_bbcode/italic.gif\" width=\"21\" height=\"22\"></a>&nbsp;
  8.          <a href=\"javascript:storeCaret(\"u\",\"u\" );\"><img style=\"background-color: #FFFFFF\" border=\"1\" src=\"img_bbcode/underline.gif\" width=\"21\" height=\"22\"></a>&nbsp;
  9.            <a href=\"javascript:storeCaret(\"code\",\"code\" );\"><img style=\"background-color: #FFFFFF\" border=\"1\" src=\"img_bbcode/code.gif\" width=\"21\" height=\"22\"></a>&nbsp;
  10.           <a href=\"javascript:storeCaret(\"url\",\"url\" );\"><img style=\"background-color: #FFFFFF\" border=\"1\" src=\"img_bbcode/link.gif\" width=\"21\" height=\"22\"></a>&nbsp;
  11.           <a href=\"javascript:storeCaret(\"img\",\"img\" );\"><img style=\"background-color: #FFFFFF\" border=\"1\" src=\"img_bbcode/image.gif\" width=\"21\" height=\"22\"></a>&nbsp;
  12.           <a href=\"javascript:storeCaret(\"color=#123456\",\"color\" );\"><img style=\"background-color: #FFFFFF\" border=\"1\" src=\"img_bbcode/image.gif\" width=\"21\" height=\"22\"></a>&nbsp;


Message édité par xadawa le 07-05-2006 à 20:29:26
mood
Publicité
Posté le 07-05-2006 à 18:59:47  profilanswer
 


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

  bbcode et javascript -> un petit script avec un petit bug ... mais où?

 

Sujets relatifs
[javascript] Settimeout questionProblème d'un script d'up d'image en ayant changé d'hébergement
Generer une base a partir d'un scriptDelais d'action d'un 'setVariable' de Javascript vers Flash
[Problème] Javascript et script SHtableau array remplie a l'aide d'une requete en javascript
Appeler un script dans un autre script en VBSrecuperer la valeur d'une variable javascript dans du code php
probleme javascript avec un div 
Plus de sujets relatifs à : bbcode et javascript -> un petit script avec un petit bug ... mais où?


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