Cellule non-sélectionnable

Signaler
Messages postés
54
Date d'inscription
vendredi 24 octobre 2003
Statut
Membre
Dernière intervention
23 septembre 2009
-
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
-
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

Messages postés
54
Date d'inscription
vendredi 24 octobre 2003
Statut
Membre
Dernière intervention
23 septembre 2009

Je pose une question insoluble?


Car c'est un bug qui me bloque en partie dans la progression de mon coding...
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
16
B

onjour...
cela peut peut être t'aider CURSEUR dans TEXTAREA attendu que je n'ai pas tout compris à ton problème...
;0)
Messages postés
54
Date d'inscription
vendredi 24 octobre 2003
Statut
Membre
Dernière intervention
23 septembre 2009

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?
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
16
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é.
Messages postés
54
Date d'inscription
vendredi 24 octobre 2003
Statut
Membre
Dernière intervention
23 septembre 2009

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.... 
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
16
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)