Cellule non-sélectionnable

cs_skit Messages postés 54 Date d'inscription vendredi 24 octobre 2003 Statut Membre Dernière intervention 23 septembre 2009 - 3 nov. 2006 à 20:59
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 - 7 nov. 2006 à 18:28
B'jour à tous  :)

Après avoir longuement cherché l'erreur dans mon code; j'ai trouvé qu'en fait le bug venait de la sélection d'une cellule.

En fait je sélectionne une partie du texte dans textarea et ensuite j'ajoute mes 2 balises avant et après ce texte.

Mais pour les couleurs ça ne marche pas. Et pour cause; j'utilise un
tableau dont les cellules sont colorées donc quand je clic sur le
tableau; la sélection passe du textarea aux cellules et par conséquent
mes balises agissent comme si je n'avais pas sélectionné une partie du
texte (donc en ce mettant à la fin vu que rien n'est sélectionné)


Quelqun aurait un petit code en java ou autre pour éviter que la
sélection passe sur le tableau sous IE? (car le bug n'apparaît pas sous
FF)

Merci bien!  ^^

6 réponses

cs_skit Messages postés 54 Date d'inscription vendredi 24 octobre 2003 Statut Membre Dernière intervention 23 septembre 2009
3 nov. 2006 à 23:58
Je pose une question insoluble?


Car c'est un bug qui me bloque en partie dans la progression de mon coding...
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
4 nov. 2006 à 00:37
B

onjour...
cela peut peut être t'aider CURSEUR dans TEXTAREA attendu que je n'ai pas tout compris à ton problème...
;0)
0
cs_skit Messages postés 54 Date d'inscription vendredi 24 octobre 2003 Statut Membre Dernière intervention 23 septembre 2009
4 nov. 2006 à 01:11
Mici mais ça ne correspond pas à mon problème.

Mon problème vient plutôt du fait que lorsque je clic sur un boutton
c'est le texte du textarea qui reste sélectionné sous IE mais lorsque
je clic sur une cellule de tableau la sélection s'enlève et alors les
balises arrivent comme si le texte n'avait pas été sélectionné.

Soit au lieu de faire

Bonjour

elles font

Bonjour


Euh j'ai été compréhensible?
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
4 nov. 2006 à 07:52
B


onjour...
y voyant un peu plus clair, je pense que dans ce cas il te faut gérer avec l'événement onblur du textarea la position du curseur et/ou le texte sélectionné.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_skit Messages postés 54 Date d'inscription vendredi 24 octobre 2003 Statut Membre Dernière intervention 23 septembre 2009
4 nov. 2006 à 22:58
J'ai modifié le tableau par des listes déroulantes mais même problème sous IE

je ne vais quand même pas créer un bouton pour chaque couleur?!
comme ceci;

<option onclick= "bbcode('[bgcolor=darkred]','/bgcolor')"
style="background-color:darkred;">Rouge
fonc&eacute;</option>


Problème: ici le code ne se rajoute même plus sous IE alors que sous firefox il n'y a aucun problème

        function bbcode(bbdebut, bbfin)

        {

        input.focus();

         /* pour IE (toujous un cas appar lui ;) )*/

        if(typeof document.selection ! = 'undefined')

        {

        var range = document.selection.createRange();

        var insText = range.text;

        range.text = bbdebut + insText + bbfin;

        range = document.selection.createRange();

        if (insText.length == 0)

        {

        range.move('character', -bbfin.length);

        }

        else

        {

        range.moveStart('character', bbdebut.length + insText.length + bbfin.length);

        }

        range.select();

        }

        /* pour les navigateurs plus récents que IE comme Firefox... */

        else if(typeof input.selectionStart != 'undefined')

        {

        var start = input.selectionStart;

        var end = input.selectionEnd;

        var insText = input.value.substring(start, end);

        input.value =
input.value.substr(0, start) + bbdebut + insText + bbfin +
              
input.value.substr(end);

        var pos;

        if (insText.length == 0)

        {

        pos = start + bbdebut.length;

        }

        else

        {

        pos = start + bbdebut.length + insText.length + bbfin.length;

        }

        input.selectionStart = pos;

        input.selectionEnd = pos;

        }

    }
Si quelqun a la bonté de m'aider pour mon bbcode ce serait merveilleux.... 
0
PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
7 nov. 2006 à 18:28
B

onjour...


Je ne constate pas de problème, mais j'ai testé avec la fonction ci dessous...

function bbcode( where_, bbdebut, bbfin){
   var Obj = document.getElementById( where_);
   Obj.focus();
  /* pour IE (toujous un cas appar lui ;) )*/
  if(typeof document.selection != 'undefined'){
    var range = document.selection.createRange();
    var insText = range.text;
    range.text = bbdebut + insText + bbfin;
    range = document.selection.createRange();
    if (insText.length == 0){
      range.move('character', -bbfin.length);
    }
    else{
      range.moveStart('character', bbdebut.length + insText.length + bbfin.length);
    }
    range.select();
  }
  /* pour les navigateurs plus récents que IE comme Firefox... */
  else if(typeof Obj.selectionStart != 'undefined'){
    var start = Obj.selectionStart;
    var end = Obj.selectionEnd;
    var insText = Obj.value.substring(start, end);
    Obj.value = Obj.value.substr(0, start) + bbdebut + insText + bbfin + Obj.value.substr(end);
    var pos;
    if (insText.length == 0){
      pos = start + bbdebut.length;
    }
    else{
      pos = start + bbdebut.length + insText.length + bbfin.length;
    }
    Obj.selectionStart = pos;
    Obj.selectionEnd = pos;
  }
}

Pas de différence notable ci ce n'est que je passe en paramètre l'ID du champ de texte et que je n'utilise pas input qui est peut être à l'origine du trouble, car mot réservé.

Wait and SEA...

;0)
0
Rejoignez-nous