Bouton bbcode

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Bouton bbcode

par Dgse » 11 déc. 2005, 12:51

Bonjour

Petite question a quoi correspond cette ligne de code ...

Code : Tout sélectionner

if ((clientVer >= 4) && is_ie && is_win)
Merci

@+ Dgse

par DocType » 09 déc. 2005, 20:11

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.
Résolu pour toi, mais pour moi tu n'as pas compri ton soucis ni même le fonctionnement...
Donc à mon avis ce serait non résolu...Pourquoi ne pas essayer de comprendre ton erreur plutôt que d'aller à la pêche aux scripts ?

par moorf » 09 déc. 2005, 14:58

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.

par moorf » 09 déc. 2005, 14:47

En fait j'utilise le code donné au dessus mais qui ne fonctionne pas.
Voici mes fonctions :

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]','
','
  • ','
','
  • ','
','[img]','[/img]','','','
','
');
imageTag = false;

function bbfontstyle(bbopen, bbclose) {
var txtarea = document.post.message;

if ((clientVer >= 4) && is_ie && is_win) {
theSelection = document.selection.createRange().text;
if (!theSelection) {
txtarea.value += bbopen + bbclose;
txtarea.focus();
return;
}
document.selection.createRange().text = bbopen + theSelection + bbclose;
txtarea.focus();
return;
}
else if (txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0))
{
mozWrap(txtarea, bbopen, bbclose);
return;
}
else
{
txtarea.value += bbopen + bbclose;
txtarea.focus();
}
storeCaret(txtarea);
}


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 including image tags :D
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 the same as the one just clicked
for (i = 0; i < bbcode.length; i++) {
if (bbcode == bbnumber+1) {
bblast = i;
donotinsert = true;
}
}

if (donotinsert) { // Close all open tags up to the one just clicked & default button names
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);
}

// Insert at Claret position. Code from
// http://www.faqts.com/knowledge_base/vie ... 52/fid/130
function storeCaret(textEl) {
if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate();
}

//-->
</script>
[/code]

Et voici le bouton :

Code : Tout sélectionner

<input type="button" class="button" accesskey="b" name="addbbcode0" value=" B " onClick="bbstyle(0)">

par DocType » 09 déc. 2005, 12:46

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 ?
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...). :wink:

par moorf » 09 déc. 2005, 12:39

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 ?

par PhilFree » 30 août 2005, 23:11

Salut,

C'est un vaste sujet les BB code, je te suggère de commencer par définir un tableau:

Code : Tout sélectionner

// définition des bbCode tags bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]', '[quote]','[/quote]','[code]','
',
'
  • ','
','
  • ','
',
'[img]','[/img]','','');
[/code]

Ensuite il faut créer des fonctions comme bbstyle():

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); }

Puis des boutons comme celui-ci:
<input type="button" name="addbbcode0" value=" B "  onClick="bbstyle(0)">
Amuse toi bien
:wink:

par Invité » 30 août 2005, 15:06

Oups j'ai fait un erreur :
Bonjour,
Je voudrais savoir comment faire en javascript pour pouvoir faire des boutons qui insére [b] dans le texte et au deuxieme clic [/b] par exemple
Comment faire ?
Merci

Bouton bbcode

par bins » 30 août 2005, 15:05

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