Positionner le curseur à la fin d'un div

Liteulbob Messages postés 37 Date d'inscription   Statut Membre Dernière intervention   -  
Liteulbob Messages postés 37 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à vous.

Voilà j'ai un problème en javascript qui me semble pourtant assez simple à résoudre ...

J'aimerais tout simplement afficher un div (de taille limitée, de telle sorte que si le texte est long, une barre de défilement apparait), et qu'on voie la dernière ligne du texte.
Par contre, j'aimerais ne pas avoir à lui donner le focus.

En fait je fais mon propre chat en ajax, et aimerais que lorsque les messages chargent, le dernier (tout en bas) soit lisible. Un peu à la manière de msn ou des chats de forums habituels.

Voici mon script, réduit au minimum, où je voudrais juste qu'au chargement de la page on puisse voir le bas du texte contenu dans le petit div.


<html>
<head>
</head>
<body>


<script>
function setCaretToEnd(ctrl) {
	if (ctrl.setSelectionRange) {
		ctrl.setSelectionRange(ctrl.value.length, ctrl.value.length);
	}
	else if (ctrl.createTextRange) {
		var range = ctrl.createTextRange();
		range.moveStart('chat', ctrl.value.length);
		range.select();
	}
}
</script>

<style type="text/css">
	#chat {
		height: 100px;
		width: 200px;
		overflow: auto;
		border: 2px solid #222222;
	}
</style>

<div id="chat" onload="setCaretToEnd(this);">
Les fichiers texte sont utilisés par de nombreux logiciels pour conserver les données de configuration. Ils sont également utilisés pour contenir les textes écrits en langages de programmation. En outre, la plupart des langages de programmation offrent des fonctions prédéfinies pour manipuler du texte brut, ce qui rend la gestion des fichiers textes particulièrement accessible.

Le logiciel utilisé pour éditer un fichier texte est un éditeur de texte. Dans le cas général, un traitement de texte ne produit pas des fichiers texte. En effet, un traitement de texte n'a pas seulement besoin de manipuler du texte brut, mais également des informations sur la fonte de caractère utilisée, la disposition des caractères dans des pages, les styles typographiques, etc. Toutefois, les traitements de texte peuvent ouvrir ou sauvegarder un fichier texte, aucune information de mise en forme n'étant conservée, sauf le cas échéant les sauts de ligne.
</div>


</body>
</html>



J'ai aussi pensé à utiliser cette fonction

function cursorAfterValue(n){
  if(n.createTextRange){
    var t=n.createTextRange();
    t.moveStart("character",n.value.length);
    t.select()
  } else if(n.setSelectionRange) {
    n.setSelectionRange(n.value.length,n.value.length)
  }
}


Mais ca ne marche pas non plus .. ;(
A voir également:

1 réponse

Liteulbob Messages postés 37 Date d'inscription   Statut Membre Dernière intervention   2
 
bon bein trouvé :

document.getElementById('chat').scrollTop = document.getElementById('chat').scrollHeight;
1