[Fort Müller] take 3

asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   -  
Jean-François Pillou Messages postés 19261 Date d'inscription   Statut Webmaster Dernière intervention   -
Bonjour tout le monde :)

Bon j'ai eu l'occasion ces derniers temps de me pencher longuement sur XPFE, j'ai donc du me replonger dans le JavaScript, le DOM, et tout ce qui va avec, et j'ai trouver quelque chose qui résoud un petit probleme sous mozilla qui m'enerve assez fréquement.

Quand on utilise les boutons pour inserrer les balises de formatage, d'une part, le curseur se replace un peu ou il veut, d'autre part (plus génant) quand il y a un scroll dans le TEXTAREA, il remonte systematiquement tout en haut aprés l'insertion des balises...

En retouchant un tout petit peu, le bout de code incriminé:
...
{
  txtObj.value = txtObj.value.substr(0, txtObj.selectionStart) + Tag +
  txtObj.value.substr(txtObj.selectionStart, 
  txtObj.selectionEnd-txtObj.selectionStart) +
  closeTag + txtObj.value.substr(txtObj.selectionEnd);
}
...
de cette façon:
...
{
  // 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;
}
...
On obtient un comportement identique du javascript sur IE, et FireFox, j'ai pas poussé les teste trés loin, mais ça semble fonctionner plutot pas mal :)

@++
 ♫ Il suffirait de presque rien...

10 réponses

asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426
 
Au passage, j'en profite pour rajouter que ça serait pas mal que le TEXTAREA soit un peu plus grand en hauteur ;-)
 ♫ Il suffirait de presque rien...
0
teebo Messages postés 33491 Date d'inscription   Statut Modérateur Dernière intervention   1 793
 
Et en largeur :o)

.  .  Ce post a été écrit entièrement
\_/  avec des molécules recyclées
0
asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426
 
ha ?
Moi ça me va la largeure :)
par contre, un petit controle ActiveX pour lancer Word :)
 ♫ Il suffirait de presque rien...
0
teebo Messages postés 33491 Date d'inscription   Statut Modérateur Dernière intervention   1 793
 
Arg non! Surtout pas, j'ai ce truc que sur mon PC de boulot et c'est deja trop pour moi :o)


.  .  Ce post a été écrit entièrement
\_/  avec des molécules recyclées
0
asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426 > teebo Messages postés 33491 Date d'inscription   Statut Modérateur Dernière intervention  
 
Bah pas grave, avec ton SP2 tout neuf tu ne veras pas de changement :-D
 ♫ Il suffirait de presque rien...
0
teebo Messages postés 33491 Date d'inscription   Statut Modérateur Dernière intervention   1 793
 
Il est sur mon perso pas sur mon pro :o)
Je vais attendre qu'ils nous l'impose ici pour le mettre chez moi, entre temps ils devront resoudre pas mal de probleme et je saurais a qui m'adresser pour les miens apres :o)


.  .  Ce post a été écrit entièrement
\_/  avec des molécules recyclées
0
asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426
 
Je crois que c'est plus sage en effet :)

Vivement debut septembre qu'on ai plus de réaction suite à l'installation du SP2, je serais ravi de savoir si ce qui t'es arrivé est assez isolé, ou si ça risque de poser probleme aux trois quarts des utilisateurs.

J'ai l'impression qu'installer le SP2 sur un machine juste pour la mettre a jour n'est pas immaginable pour le moment, visiblement, il faut mieux installer le SP2 sur un systeme fraichement installé... :-/
 ♫ Il suffirait de presque rien...
0
teebo Messages postés 33491 Date d'inscription   Statut Modérateur Dernière intervention   1 793
 
D'autant que au niveau securite je suis tranquille, rien ne peux arriver sur ce PC, tout est redirige sur ma slack sur mon serveur :o) Et en plus j'yi un routeur/fw donc...C'etait plus pour le fun et pour l'USB2 (que j'arrive pas a faire reconnaitre depuis des plombes)

Je pense que tu as raison pour l'install aussi...Je te raconte pas pour ceux qui vont l'avoir directement par le update...
Autre chose amusante, il "bouffe" tous les patch XP dans le panneau de desinstallation ...


.  .  Ce post a été écrit entièrement
\_/  avec des molécules recyclées
0
asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426 > teebo Messages postés 33491 Date d'inscription   Statut Modérateur Dernière intervention  
 
Ben, oui, logiquement tout ces patch sont dans le SP2 maintenant,
C'est pas plus mal dans un sens, la derniere fois que j'y ai jeter un oeil, je n'avais plus qu'une longue liste de patch dedans ;)
Par contre, hote moi d'un doute... quand tu désinstalles le SP2, tu as besoin de tout repacher ?

 ♫ Il suffirait de presque rien...
0
teebo Messages postés 33491 Date d'inscription   Statut Modérateur Dernière intervention   1 793 > teebo Messages postés 33491 Date d'inscription   Statut Modérateur Dernière intervention  
 
Pas eu le temps de verifier, ca me ferait chier quand meme :o(
Enfin comme je le disais je suis bien protege par ailleurs donc pas dramatique...

.  .  Ce post a été écrit entièrement
\_/  avec des molécules recyclées
0
asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426 > teebo Messages postés 33491 Date d'inscription   Statut Modérateur Dernière intervention  
 
Yop, pas dramatique pour toi puisque tu sais ou tu mes les pieds :-)
Mais si ça désinstalles les patch, et que ça pose tant que ça de probléme, on risque fort d'avoir une seconde fois, la floppé de vers et autres...
J'espere pas, mais, avoir l'effet totalement inverse que celui attendu par microsoft, ce n'est pas totalement exclus :(

 ♫ Il suffirait de presque rien...
0
asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426
 
Bonche :)

Je fais que le remonter ;)
 ♫ Il suffirait de presque rien...
0
Serge Messages postés 24570 Date d'inscription   Statut Modérateur Dernière intervention   209
 
tiens, un vacancier !

_______
Sergio
0
asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426 > Serge Messages postés 24570 Date d'inscription   Statut Modérateur Dernière intervention  
 
raté... a fini vacances :(
 ♫ Il suffirait de presque rien...
0

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

Posez votre question
asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426
 
je suis le seul que ça énerve ? :(
 ♫ Il suffirait de presque rien...
0
SirHill Messages postés 4060 Date d'inscription   Statut Contributeur Dernière intervention   543
 
Salut,

Non, moi zaussi...

Je vote POUR ! ;-)
0
SirHill Messages postés 4060 Date d'inscription   Statut Contributeur Dernière intervention   543
 
Je n'ai pas constaté les "phénomènes" que tu décris ci-dessus (enfin je n'y ai pas trop fait attention), mais ce qui me gêne (silonpeudir) avait été évoqué ici :
http://www.commentcamarche.net/forum/affich-575028

Exemple :
En voulant mettre un texte en gras et en italique, j'obtiens ceci :

<gras>texte</gras><ital></ital>
0
asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426
 
arf , oui ça c'est encore autre chose!

Dans le poste du dessus, c'était même quand tu fesais la premiere insertion (<gras>)
faire en sorte que ça reste selectionner, ça peut etre pas mal, mais ça dépend de la façon dont tu rédiges tes messages, si tu ecrit tout et qu'ensuite tu mets en forme, c'est valable, si tu met en forme au fur et a mesure, ça ne l'est plus...

C'est justement ce que je sous entendais ici:
  // repositionnement cuseur aprés la balise fermante
  // peut être grandemant amélioré ;-)
  txtObj.selectionStart = pos; 
  txtObj.selectionEnd = pos;


Le probleme du scroll, c'est uniquement pour mozilla, sous IE, ça se passe sans soucis, c'est peut-etre pour ça que tu ne le vois pas :)
 ♫ Il suffirait de presque rien...
0
SirHill Messages postés 4060 Date d'inscription   Statut Contributeur Dernière intervention   543
 
En effet...

Le "problème" que je mentionne ci-dessus ne survient qu'avec IE, car le texte reste selectionné après l'ajout des balises.

Enfin c'est pas hyper grave :-)

J'allais voter pour l'augmentation de la surface d'écriture, mais je viens de m'apercevoir qu'elle a eu lieu ;-)

Merci Jeff :-)
0
SirHill Messages postés 4060 Date d'inscription   Statut Contributeur Dernière intervention   543
 
Ben tiens, pour corriger ce problème, le code ci-dessous :
...
if (ie==1) 
	{
		if (txtObj.createTextRange && txtObj.caretPos) 
			{
				var caretPos = txtObj.caretPos;
			
				if ( txtObj.caretPos.text == '') 
					{
						caretPos.text = ( ( enclose ) ? Tag + closeTag : Tag );
						//caretPos.text.charat(caretPos.text.length - 1)  = ' ' ? Tag + closeTag +  ' ' : Tag + closeTag;
		 		}

	 			else 
					{
						caretPos.text = ( ( enclose ) ? Tag + caretPos.text + closeTag : Tag + caretPos.text );
 	 	 		}	

				markSelection ( caretPos );

		}

   		else if (txtObj.getSelection && txtObj.caretPos) 
			{

				txtObj.focus();
  	 			var caretPos = txtObj.caretPos;
	 			caretPos.text = caretPos.text.charat(caretPos.text.length - 1)  = ' ' ? Tag + closeTag +  ' ' : Tag + closeTag;

				markSelection ( caretPos );


		}


   		else 
			{
   				txtObj.value += Tag + closeTag;

		}

}
...
pourrait être remplacé par celui-ci :
...
if (ie==1) 
	{
  		var str = document.selection.createRange().text;
  		txtObj.focus();
		var sel = document.selection.createRange();
  		sel.text = Tag + str + closeTag;
  		return;
}
...

Et le code suivant pourrait être supprimé :
onkeyup=markSelection(this); onclick=markSelection(this); onselect=markSelection(this); 
(balise TEXTAREA)
function markSelection ( txtObj ) {

	if ( txtObj.createTextRange ) 
		{
			txtObj.caretPos = document.selection.createRange().duplicate();
			//isSelected = true;
	}

	else if (txtObj.getSelection)
		{
			txtObj.caretPos = document.getSelection();
	}

	else return; 
}
:-)
0
Jean-François Pillou Messages postés 19261 Date d'inscription   Statut Webmaster Dernière intervention   63 277
 
Moi je vote POUR aussi !

                                   
Jeff  \--Webmaster@CCM--/ 
0
asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426
 
Merci M'sieur! :)

A puis y'a même plus de place!!! cool, Merci :)
 ♫ Il suffirait de presque rien...
0
Jean-François Pillou Messages postés 19261 Date d'inscription   Statut Webmaster Dernière intervention   63 277 > asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention  
 
Non c'est moi !

Merci M'sieur asevere, grâce à vous, comme dirait l'autre :
CCM is fully Mozilla-compliant ! :-)

                                   
Jeff  \--Webmaster@CCM--/ 
0
Eaulive Messages postés 27064 Date d'inscription   Statut Modérateur Dernière intervention   290
 
voyons voir test yes!

Ça va être dur de s'habituer à ne plus écrire les balises à la main. :-D

Eaulive...
Vaut mieux un p'tit piment qu'un avion en plastique
0
Thom@s Messages postés 3412 Date d'inscription   Statut Modérateur Dernière intervention   678
 
Salut à tous !

C'est cool ça :-)
Merci !
  ___________________
  |__ .: Thom@s :. ___|
0
Thom@s Messages postés 3412 Date d'inscription   Statut Modérateur Dernière intervention   678
 
Re,

Ce serait cool si on pouvait avoir la même chose dans la FAQ, non ? :-)

Merci Jeff :)
  ___________________
  |__ .: Thom@s :. ___|
0
asevere Messages postés 13095 Date d'inscription   Statut Webmaster Dernière intervention   426 > Thom@s Messages postés 3412 Date d'inscription   Statut Modérateur Dernière intervention  
 
Trés jsute, j'ai remarqué ça hier, mais j'ai oublié d'en reparler :)
 ♫ Il suffirait de presque rien...
0
SirHill Messages postés 4060 Date d'inscription   Statut Contributeur Dernière intervention   543 > Thom@s Messages postés 3412 Date d'inscription   Statut Modérateur Dernière intervention  
 
Toutafé ;)

Et une petite augmentation de la surface d'écriture ne serait pas de refus :)
0
Jean-François Pillou Messages postés 19261 Date d'inscription   Statut Webmaster Dernière intervention   63 277 > Thom@s Messages postés 3412 Date d'inscription   Statut Modérateur Dernière intervention  
 
Tout ceci est fait, merci à tous et en particulier à asevere pour les améliorations de code ! :-)

                                   
Jeff  \--Webmaster@CCM--/ 
0
Thom@s Messages postés 3412 Date d'inscription   Statut Modérateur Dernière intervention   678 > Jean-François Pillou Messages postés 19261 Date d'inscription   Statut Webmaster Dernière intervention  
 
et merci à toi :-)
  ___________________
  |__ .: Thom@s :. ___|
0