Bonjour,
Je voudrais savoir comment faire en javascript pour pouvoir faire des boutons qui insére dans le texte et au deuxieme clic par exemple
Comment faire ?
Merci
Code : Tout sélectionner
// définition des bbCode tags
bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]',
'[quote]','[/quote]','[code]','Code : Tout sélectionner
function bbstyle(bbnumber) {
var txtarea = document.post.message;
txtarea.focus();
donotinsert = false;
theSelection = false;
bblast = 0;
if (bbnumber == -1) { // Close all open tags & default button names
while (bbcode[0]) {
butnumber = arraypop(bbcode) - 1;
txtarea.value += bbtags[butnumber + 1];
buttext = eval('document.post.addbbcode' + butnumber + '.value');
eval('document.post.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
}
imageTag = false; // All tags are closed
txtarea.focus();
return;
}
if ((clientVer >= 4) && is_ie && is_win)
{
theSelection = document.selection.createRange().text; // Get text selection
if (theSelection) {
// Add tags around selection
document.selection.createRange().text = bbtags[bbnumber] + theSelection + bbtags[bbnumber+1];
txtarea.focus();
theSelection = '';
return;
}
}
else if (txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0))
{
mozWrap(txtarea, bbtags[bbnumber], bbtags[bbnumber+1]);
return;
}
// Find last occurance of an open tag
for (i = 0; i < bbcode.length; i++) {
if (bbcode[i] == bbnumber+1) {
bblast = i;
donotinsert = true;
}
}
if (donotinsert) { // Close all open tags up to the one just clicked
while (bbcode[bblast]) {
butnumber = arraypop(bbcode) - 1;
txtarea.value += bbtags[butnumber + 1];
buttext = eval('document.post.addbbcode' + butnumber + '.value');
eval('document.post.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"');
imageTag = false;
}
txtarea.focus();
return;
}
else { // Open tags
if (imageTag && (bbnumber != 14)) { // Close image tag before adding another
txtarea.value += bbtags[15];
lastValue = arraypop(bbcode) - 1; // Remove the close image tag from the list
document.post.addbbcode14.value = "Img"; // Return button back to normal state
imageTag = false;
}
// Open tag
txtarea.value += bbtags[bbnumber];
if ((bbnumber == 14) && (imageTag == false)) imageTag = 1; // Check to stop additional tags after an unclosed image tag
arraypush(bbcode,bbnumber+1);
eval('document.post.addbbcode'+bbnumber+'.value += "*"');
txtarea.focus();
return;
}
storeCaret(txtarea);
}
<input type="button" name="addbbcode0" value=" B " onClick="bbstyle(0)">
Amuse toi bien Il faut simuler l'écriture des balises à l'emplacement du curseur. Une doc doit se situer dans ton pc (si win xp) dans le meme repertoire que htmlref. Pour ce qui est de la logique il suffit tout simplement de déclencher l'écriture de texte dans un champ de formulaire donné. Ceci est assez simple, même pour le débutant. Je t'invite à laisser une ébauche de ton script ici-même, que l'on corrigera et t'aidera pour la suite. Ceci sera plus constructif que de prendre des lignes à droite à gauche qui, à terme, pourront causer des soucis (nommage des variables identiques, functions qui se croisent etc...).Je suis un très grand débutant en javascript (voir je ne fais que récupérer au coup par coup quelques lignes à droites à gauche qui m'interesse) et, après essai de cette méthode, il se trouve qu'elle ne fonctionne pas.
Une idée qqun ?
Code : Tout sélectionner
<script language="JavaScript" type="text/javascript">
<!--
// Define the bbCode tags
bbcode = new Array();
bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[quote]','[/quote]','[code]','','');Code : Tout sélectionner
<input type="button" class="button" accesskey="b" name="addbbcode0" value=" B " onClick="bbstyle(0)">
Résolu pour toi, mais pour moi tu n'as pas compri ton soucis ni même le fonctionnement...J'ai trouvé un truc bien :
http://editeurjavascript.com/scripts/sc ... _3_318.php
Merci quand meme
J'ai pas les droits pour mettre "résolu", mais je crois qu'il faudrait qu'un modo le fasse : le probleme est résolu avec ce petit script.
Code : Tout sélectionner
if ((clientVer >= 4) && is_ie && is_win)