Rechercher : dans
Par :

Selection de texte

Dernière réponse le 9 avr 2008 à 19:36:50 kanakus, le 7 nov 2007 à 14:07:27 
 Signaler ce message aux modérateurs

Bonjour,
Voila j'ai une petite question pour vous. Si je trouve une solution a mon pb, je m'enleve un belle epine du pied.
Donc j'ai une fonction getSelectedText qui me renvoye la selection du texte selectionné par l'utilisateur. Cependant j'aimerai recuperer la position du debut de la selection et la fin de selection. J'utilse GetSelectionStart et getSelectionEnd mais cela ne fonctionne pas.
Encore une autre question au quelle je ne trouve aucune reponse sur le net. J'aimerai qd l'utilisateur fait une selection soit l'obliger a sélectionner le mot entier ou pouvoir retrouver le mot en entier. Ma solution ct que avec le getSelection Start et GetSelectionEnd. Je pourrais facilement le retrouver dans mon texte avec une fonction recherche dans mon article.

Je vous remercie d'avance.
Firefox 2.0.0.9
jAVASCRIPT

Configuration: Windows XP
Firefox 2.0.0.9

Meilleures réponses pour « Selection de texte » dans :
Photofiltre pour les débutants VoirCommencez par le télécharger Photo Filtre puis par l'installer . SOMMAIRE : Le copier-coller Insérer un texte, effets texte Les effets d'images Les effets couleurs Outil sélection Changement de sens L'outil tampon de clonage Le...
Equivalent de Word (gratuit) VoirIl existe aujourd'hui plusieurs logiciels gratuits/libres qui équivalent le logiciel payant Word. Voici une sélection des meilleurs logiciels de traitement de texte gratuits ou libres : Pour Windows AbiWord Mega Bloc Notes OpenOffice.org...
[Word] Image de fond VoirIl est possible sous Microsoft Word d'afficher une image en arrière-plan dans un document en cliquant sur le menu Format, puis sur Arrière-Plan et enfin sur Motifs et textures. Dans l'onglet Image, cliquer sur le bouton "Sélectionner une image"....
VBScript - Les fonctions de chaînes de caractères VoirLes fonctions de chaînes de caractères Fonction Description Filter(InputStrings, Value[, Include[, Compare]]) Sélectionne des chaînes de caractères parmi un tableau de chaînes...
Linux - L'éditeur Vi VoirIntroduction à Vi Vi est un des éditeurs de texte les plus populaires sous les systèmes de type Unix (avec Emacs et pico) malgré son ergonomie très limitée. Sous Linux il existe une version libre de Vi appelée Vim (Vi Improved). Vi (prononcez...
Tableur - La sélection des cellules VoirSélection de cellules Le tableur est un formidable outil pour manipuler des données. Ainsi, pour pouvoir manipuler les données il est nécessaire de disposer d'outils permettant de sélectionner rapidement toutes les cellules dont on a...

1

Dalida, le 7 nov 2007 à 14:13:14

Salut,

peux tu nous montrer du code et nous dire où ça coince exactement ?

[ Mathieu ]

"Les jeunes c'est l'insécurité
il faudrait tous les enfermer!" BxN 1985

Répondre à Dalida

2

kanakus, le 7 nov 2007 à 14:54:10

Bonjour,
# <script type="text/javascript">
# function getSelectedText(){
# if (window.getSelection){
# var str = window.getSelection();
# }else if (document.getSelection){
# var str = document.getSelection();
# }else {
# var str = document.selection.createRange().text;
# }
# return str;
# }
</script>

function detectMouse(e){
if(parseInt(navigator.appVersion) >=4){
if(navigator.appName == 'Netscape'){
document.getElementById('zone').value = e.pageX ;
document.getElementById('zone1').value = e.pageY;
}
else{
document.getElementById('zone').value = event.x ;
document.getElementById('zone1').value = event.y;
}
}
}

La fonction dectctMouse me donne la position X et Y dans le navigateur mais moi j'aimerai un fonction qui me donne le numero de ligne pour X par exmple et pour Y une position.

Si vous avec une fonction javascript je suis preneur.

Voila merci

Répondre à kanakus

3

Dalida, le 7 nov 2007 à 15:52:53
  • +2

Regarde celle de CCM !

function insertTag ( txtName, tag, enclose ) {
	var closeTag = ((enclose) ? "</" + tag + ">" : "");
	var Tag = "<" + tag + ">";
	var txtObj = eval ( txtName );
	if (ie==1)
	{
			var str = document.selection.createRange().text;
			txtObj.focus();
		var sel = document.selection.createRange();
			sel.text = Tag + str + closeTag;
			return;
	}
	else
	{
		// position du scroll
		oldPos = txtObj.scrollTop;
		oldHght = txtObj.scrollHeight;

		// position du curseur
		pos = txtObj.selectionEnd + Tag.length + closeTag.length;

		txtObj.value = txtObj.value.substr(0, txtObj.selectionStart) + Tag +
		txtObj.value.substr(txtObj.selectionStart,
		txtObj.selectionEnd-txtObj.selectionStart) +
		closeTag + txtObj.value.substr(txtObj.selectionEnd);

		// repositionnement cuseur aprés la balise fermante
		// peut être grandemant amélioré ;-)
		txtObj.selectionStart = pos;
		txtObj.selectionEnd = pos;

		// calcul et application de la nouvelle bonne postion du scroll
		newHght = txtObj.scrollHeight - oldHght;
		txtObj.scrollTop = oldPos + newHght;
	}
txtObj.focus();
}

[ Mathieu ]
"Les jeunes c'est l'insécurité
il faudrait tous les enfermer!" BxN 1985

Répondre à Dalida

4

kanakus, le 8 nov 2007 à 12:44:19

Bonjour,
merci bcp pour ton code mais cela ne fonctionne pas ou j'ai du mal a le faire fonctionner pourrait tu me donner un exemple d'utilisation stp?
Je te remercie d'avance

Répondre à kanakus

5

kanakus, le 15 nov 2007 à 15:05:57

Bonjour,
J'ai un petit pb, je voudrais que qd l'utilisateur qui est sur ma page internet selectionne du texte, je puisse le recupere jusqu'a la tout fonctionne, j'utilise la fonction getSlectedText. Mainterant je voudrais lors de la selection que je puisse mettre des balises au debut de la selection et à la fin. Je sais que avec range et la methode surroundContext ca devrait marcher masi chez moi ca ne focntionne pas.

exemple: toto a faim. si mon utilisateur selectionne toto j'aimerai avoir <titi>toto</titi> a faim.
Je vosu remercie d'avance.
J'utilise javascript et Firefox 2.0.0.9
Voila mon code:

function selection(){
var startNode;
var newNode;


if (window.getSelection){
var str = window.getSelection();
alert (str);
range = document.createRange();
newNode = document.createElement("titi");
node = document.getElementsByTagName("div").item(0);
str.selectNode (node);
str.surroundContents(newNode);
alert (str);
/

}else if (document.getSelection){
var str = document.getSelection();
}else {
var str = document.selection.createRange().text;
}
return str;
}

Répondre à kanakus

6

Dalida, le 15 nov 2007 à 15:36:09

Salut,

est-ce que tu as réussi à déceler une erreur ?

utilises WebDevelopper pour FireFox si tu veux, il affiches les erreurs de Javascript.

[ Mathieu ]

"Les jeunes c'est l'insécurité
il faudrait tous les enfermer!" BxN 1985

Répondre à Dalida

7

kanakus, le 15 nov 2007 à 15:51:04

Bonjour,
merci de te pencher sur mon pb. Non je n'ai pas d'erreur le seul truc c'est qu'il ne me renvoie pas les balises apres la selection.

function selection(){
var startNode;
var newNode;
var range;

if (window.getSelection){
var str = window.getSelection();
alert (str);
range = document.createRange();
newNode = document.createElement("p");
alert(newNode);
node = document.getElementsByTagName("div").item(0);
alert(node);
range.selectNode(node);
range.surroundContents(newNode);
}else if (document.getSelection){
var str = document.getSelection();
}else {
var str = document.selection.createRange().text;
}
return str;
}

Répondre à kanakus

8

Dalida, le 15 nov 2007 à 16:23:17

Je n'ai pas le temps de m'y pencher davantage pour le; moment mais regarde bien ton code.
je pense que tu ne modifies 'str' nul part dans la première condition.
donc tu le renvoies tel que tu l'as reçu de 'window.getSelection()'.

function selection(){

	var startNode;
	var newNode;
	var range;

	if (window.getSelection){
	
		var str = window.getSelection();
		alert (str);
		
		range = document.createRange();
		newNode = document.createElement("p");
		alert(newNode);
		
		node = document.getElementsByTagName("div").item(0);
		alert(node);
		
		range.selectNode(node);
		range.surroundContents(newNode);

		/* il faudrait mettre le résultat dans 'str', non ? */
		
	}
	else if (document.getSelection){
	
		var str = document.getSelection();
		
	}
	else {
	
		var str = document.selection.createRange().text;
		
	}
	
	return str;
	
}

[ Mathieu ]
"Les jeunes c'est l'insécurité
il faudrait tous les enfermer!" BxN 1985

Répondre à Dalida

9

kanakus, le 15 nov 2007 à 17:50:16

Bonjour,
Si je modifie mon str je modifie ma selection alors que je ne veux pas modier ma selection je veux modifier le contenu de ma page html avec la fonction surroundContext(). Je sais pas si j'ai ete clair. Si tu vx plus de presision:

<HTML>
<head>
<script>
function selection(){
var startNode;
var newNode;
var range;

if (window.getSelection){
var str = window.getSelection();
alert (str);
range = document.createRange();
newNode = document.createElement("p");
alert(newNode);
node = document.getElementsByTagName("div").item(0);
alert(node);
range.selectNode(node);
range.surroundContents(newNode);
}else if (document.getSelection){
var str = document.getSelection();
}else {
var str = document.selection.createRange().text;
}
return str;
}
</script>
</head>
<body onclick="selection()">
<h4 id="entry1196">Mamam va au marché</h4>
<div>Maman a achete</div>
<ol>
<li>des légumes</li>
<li>des fruits</li>
<li>des biscuits fait maison.</li>
</ol>

</body>
</html>
Si je selection mamam alors je veut obtenir cette page html:

</head>
<body onclick="selection()">
<h4 id="entry1196"><p>Mamam<p> va au marché</h4>
<div>Maman a achete</div>
<ol>
<li>des légumes</li>
<li>des fruits</li>
<li>des biscuits fait maison.</li>
</ol>

</body>
</html>

Répondre à kanakus

10

big-fr, le 16 fév 2008 à 17:47:20

Merci D'utiliser Les balise

<code>
</code>

!!!

Répondre à big-fr

11

 sam, le 9 avr 2008 à 19:36:50

Slt je voudrais savoir si qlq sait comment marquer un texte apres que je le selectionne et que je le recupère à l'aide d'une fonction mercie d'avance

Répondre à sam
Collection CommentÇaMarche.net