Récuperation de texte selectionné javascript
still-ska
Messages postés
12
Date d'inscription
Statut
Membre
Dernière intervention
-
JackNUMBER Messages postés 64 Date d'inscription Statut Membre Dernière intervention -
JackNUMBER Messages postés 64 Date d'inscription Statut Membre Dernière intervention -
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
- Texte de chanson gratuit pdf - Télécharger - Vie quotidienne
- 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
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