Récuperation de texte selectionné javascript
still-ska
Messages postés
12
Statut
Membre
-
JackNUMBER Messages postés 70 Statut Membre -
JackNUMBER Messages postés 70 Statut Membre -
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();
}
}
}
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();
}
}
}
A voir également:
- Récuperation de texte selectionné javascript
- Convertisseur récupération de texte - Guide
- Transcription audio en texte word gratuit - Guide
- Excel cellule couleur si condition texte - Guide
- Selectionner texte sur pdf - Guide
- Traitement de texte gratuit - Guide
3 réponses
salut
Pour ton premier probleme il faut mettre seulement
str = document.selection.createRange().text
Le texte ce trouve ici normalement
Pour ton premier probleme il faut mettre seulement
str = document.selection.createRange().text
Le texte ce trouve ici normalement
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.selectedIndex].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.
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.selectedIndex].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.
donc la ligne du premier problème j'ai bien actuellement ceci:
str = document.selection.createRange().text