Rechercher : dans
Par :

Récuperation de texte selectionné javascript

Dernière réponse le 20 mai 2009 à 14:43:30 still-ska, le 13 jun 2008 à 10:21:35 
 Signaler ce message aux modérateurs

Bonjour,

J'ai sur ma page web, une zone de palette de couleur en cliquant dessus j'appelle la fonction colored avec la couleur en paramètre.
Cette fonction doit inserer du texte dans un textearea la voici:
C'est sous IE que ca plante


function colored(selec)
{
if (isMozilla)
{
// Si on est sur Mozilla

//cette parti marche (je vous la communiquerai si vous souhaitez)
}
else
{
// Si on est sur IE

oField = document.forms['news'].elements['newst']; //récupération de la zone de texte
str = document.selection.createRange().text.value; //récupération de la séléction
C'est la que ca plante, il ne voi pas de texte séléctionné

if (str.length>0)
{
// Si on a selectionné du texte
var sel = document.selection.createRange();
sel.text = "[color=" + selec + "]" + str + "/color";
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();
et ici aussi je pense car le texte s'insère toujours au début de la zone de texte quelquesoit la position du curseur
alert(oField.caretPos.length);
var bidon = "%~%";
var orig = oField.value;
oField.caretPos.text = bidon;
var i = oField.value.search(bidon);
oField.value = orig.substr(0,i) + "[color=" + selec + "]/color" + 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();

}
}
}

Configuration: Windows XP
Firefox 2.0.0.14

Meilleures réponses pour « Récuperation de texte selectionné javascript » dans :
Javascript - Manipulation des contrôles clavier VoirManipulation des contrôles clavier Cette astuce a pour but de vous faire découvrir la (ou du moins une) manière de contrôler les évènements clavier en javascript. Cela vous permettra de contrôler/attribuer les/des comportements particuliers à...
Javascript - Librairies d'effets pour vos images VoirAu gré de vos explorations du web, vous avez vu de superbes effets de présentation des images. Et ça vous plairaît bien de pouvoir proposer les mêmes à vos visiteurs. Voici quelques solutions en Javascript couplées à des CSS. Elles sont plus...
Javascript - Les événements VoirQu'appelle-t-on un événement? Les événements sont des actions de l'utilisateur, qui vont pouvoir donner lieu à une interactivité. L'événement par excellence est le clic de souris, car c'est le seul que le HTML gère. Grâce au Javascript il est...
Javascript - L'objet Date VoirLes particularités de l'objet Date L'objet Date permet de travailler avec toutes les variables qui concernent les dates et la gestion du temps. Il s'agit d'un objet inclus de façon native dans Javascript, et que l'on peut toujours utiliser. La...
Javascript - Les tableaux VoirIntroduction à la notion de tableau Les variables de Javascript ne permettent de stocker qu'une seule donnée à la fois. Or, étant donné qu'il est souvent utile de manipuler de nombreuses données, le concept de variable se révéle parfois...

1

Mimiste, le 13 jun 2008 à 10:33:30

Salut

Pour ton premier probleme il faut mettre seulement

str = document.selection.createRange().text

Le texte ce trouve ici normalement La sportivité commence là où le diesel s'arrête !
You can still watch this ? Wait until the Vtec kick in !

Répondre à Mimiste

2

still-ska, le 13 jun 2008 à 10:53:41

Oui j'avais oublié de retirer ça, c'est ce que j'avais au début mais ça marchais pas, enfin, j'ai une autre fonction quasi identique et sur celle la ça marche mais ici non, (c'est pour ça que je bug)

donc la ligne du premier problème j'ai bien actuellement ceci:
str = document.selection.createRange().text

Répondre à still-ska

3

still-ska, le 13 jun 2008 à 11:15:38

La deuxième fonction marche la première non!



function colored(selec)
{
if (isMozilla)
{//ca marche
}
else
{
// Si on est sur IE

oField = document.forms['news'].elements['newst'];
str = document.selection.createRange().text; C'est la que ca plante

//le reste de la fonction

}
}



function taille()
{
selec = document.news.sized.options[document.news.sized.selectedInde­x].value;
if (isMozilla)
{//ca marche
}
else
{
// Si on est sur IE

oField = document.forms['news'].elements['newst'];
str = document.selection.createRange().text; Alors que la c'est pareil et que ca marche

//le reste de la fonction

}
}


Aider moi s'il vous plais j'y comprend plus rien

A autre chose! La différence notable que je vois entre ces 2 fonctions est que de la page php, la deuxième est appelé directement lors d'un click alors que pour la première, la page php appelle une fonction automatiquement, qui appel une autre lors d'un click qui en appel une autre.

Répondre à still-ska

4

 Korc'hwezh, le 20 mai 2009 à 14:43:30

Var textRange = null;

textRange = document.selection.createRange();
str = textRange.text;

Kenavo !

Répondre à Korc'hwezh
Collection CommentÇaMarche.net