xadawa Put1 2 Pc 2 MrDeeuuuhhh !!! | 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 :
- 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 :
- function storeCaret(selec,special)
- {
- if (isMozilla)
- {
- // Si on est sur Mozilla
- oField = document.forms['form'].elements['contenu'];
- objectValue = oField.value;
- deb = oField.selectionStart;
- fin = oField.selectionEnd;
- objectValueDeb = objectValue.substring( 0 , oField.selectionStart );
- objectValueFin = objectValue.substring( oField.selectionEnd , oField.textLength );
- objectSelected = objectValue.substring( oField.selectionStart ,oField.selectionEnd );
- // alert("Debut:'"+objectValueDeb+"' ("+deb+" )\nFin:'"+objectValueFin+"' ("+fin+" )\n\nSelectionné:'"+objectSelected+"'("+(fin-deb)+" )" );
- oField.value = objectValueDeb + "[" + selec + "]" + objectSelected + "[/" + special + "]" + objectValueFin;
- oField.selectionStart = strlen(objectValueDeb);
- oField.selectionEnd = strlen(objectValueDeb + "[" + selec + "]" + objectSelected + "[/" + special + "]" );
- oField.focus();
- oField.setSelectionRange(
- objectValueDeb.length + selec.length + 2,
- objectValueDeb.length + special.length + 2);
- }
- else
- {
- // Si on est sur IE
- oField = document.forms['form'].elements['contenu'];
- var str = document.selection.createRange().text;
- if (str.length>0)
- {
- // Si on a selectionné du texte
- var sel = document.selection.createRange();
- sel.text = "[" + selec + "]" + str + "[/" + special + "]";
- sel.collapse();
- sel.select();
- }
- else
- {
- oField.focus(oField.caretPos);
- // alert(oField.caretPos+"\n"+oField.value.length+"\n" )
- oField.focus(oField.value.length);
- oField.caretPos = document.selection.createRange().duplicate();
- var bidon = "%~%";
- var orig = oField.value;
- oField.caretPos.text = bidon;
- var i = oField.value.search(bidon);
- oField.value = orig.substr(0,i) + "[" + selec + "][/" + special + "]" + orig.substr(i, oField.value.length);
- var r = 0;
- for(n = 0; n < i; n++)
- {if(regexp.test(oField.value.substr(n,2)) == true){r++;}};
- pos = i + 2 + selec.length - r;
- //placer(document.forms['news'].elements['newst'], pos);
- var r = oField.createTextRange();
- r.moveStart('character', pos);
- r.collapse();
- r.select();
- }
- }
- }
|
et voici mes boutons pas encore fini...
Code :
- <div align=\"center\">
- <center>
- <table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\">
- <tr>
- <td width=\"100%\" align=\"center\">
- <a href=\"javascript:storeCaret(\"b\",\"b\" );\"><img style=\"background-color: #FFFFFF\" border=\"1\" src=\"img_bbcode/bold.gif\" width=\"21\" height=\"22\"></a>
- <a href=\"javascript:storeCaret(\"i\",\"i\" );\"><img style=\"background-color: #FFFFFF\" border=\"1\" src=\"img_bbcode/italic.gif\" width=\"21\" height=\"22\"></a>
- <a href=\"javascript:storeCaret(\"u\",\"u\" );\"><img style=\"background-color: #FFFFFF\" border=\"1\" src=\"img_bbcode/underline.gif\" width=\"21\" height=\"22\"></a>
- <a href=\"javascript:storeCaret(\"code\",\"code\" );\"><img style=\"background-color: #FFFFFF\" border=\"1\" src=\"img_bbcode/code.gif\" width=\"21\" height=\"22\"></a>
- <a href=\"javascript:storeCaret(\"url\",\"url\" );\"><img style=\"background-color: #FFFFFF\" border=\"1\" src=\"img_bbcode/link.gif\" width=\"21\" height=\"22\"></a>
- <a href=\"javascript:storeCaret(\"img\",\"img\" );\"><img style=\"background-color: #FFFFFF\" border=\"1\" src=\"img_bbcode/image.gif\" width=\"21\" height=\"22\"></a>
- <a href=\"javascript:storeCaret(\"color=#123456\",\"color\" );\"><img style=\"background-color: #FFFFFF\" border=\"1\" src=\"img_bbcode/image.gif\" width=\"21\" height=\"22\"></a>
|
Message édité par xadawa le 07-05-2006 à 20:29:26
|