Selection de texte

Fermé
kanakus Messages postés 20 Date d'inscription vendredi 25 mars 2005 Statut Membre Dernière intervention 25 juin 2009 - 7 nov. 2007 à 14:07
 sam - 9 avril 2008 à 19:36
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

11 réponses

Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
7 nov. 2007 à 15:52
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();
}
3
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
15 nov. 2007 à 15:36
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.
1
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
7 nov. 2007 à 14:13
salut,

peux tu nous montrer du code et nous dire où ça coince exactement ?
0
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
0
kanakus Messages postés 20 Date d'inscription vendredi 25 mars 2005 Statut Membre Dernière intervention 25 juin 2009 4
15 nov. 2007 à 15:05
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;
}
0
kanakus Messages postés 20 Date d'inscription vendredi 25 mars 2005 Statut Membre Dernière intervention 25 juin 2009 4
15 nov. 2007 à 15:51
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;
}
0
Dalida Messages postés 6728 Date d'inscription mardi 14 mai 2002 Statut Contributeur Dernière intervention 11 janvier 2016 920
15 nov. 2007 à 16:23
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;
	
}
0
kanakus Messages postés 20 Date d'inscription vendredi 25 mars 2005 Statut Membre Dernière intervention 25 juin 2009 4
15 nov. 2007 à 17:50
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>
0
Profil bloqué
16 févr. 2008 à 17:47
Merci D'utiliser Les balise

<code>
</code>


!!!
0
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
0