2010-08-04 8 views
2

Est-ce que quelqu'un sait quelle serait la meilleure méthode pour déterminer combien de caractères peuvent tenir dans un bloc DIV en HTML en utilisant JavaScript?Déterminez combien de caractères peuvent entrer dans DIV avec JavaScript

Un conseil serait grandement aider.

+1

Est-ce que la div ont une largeur prédéfinie? – Sarfraz

+0

Voulez-vous limiter le non. de caractères entrant dans un DIV ou vous voulez vérifier et marquer un message à l'utilisateur si le contenu est plus que le DIV peut prendre? –

+0

Si vous essayez de tronquer une chaîne pour la diviser, vous devriez envisager de meilleures alternatives - telles que la propriété CSS3 * text-overflow *, qui est supportée dans IE6 + et la plupart des navigateurs modernes. Voir [ma réponse à * Ajouter "..." quand une chaîne est plus grande que désiré * pour plus d'informations] (http://stackoverflow.com/questions/3247011/append-when-a-string-is-larger-than -desired/3247062 # 3247062) –

Répondre

2

Vous pouvez ajouter de façon itérative vos caractères à une div masquée et vérifier la largeur de celle-ci. Je ne sais pas s'il y a un meilleur moyen.

Edit: Quelque chose comme ceci:

var targetWidth = document.getElementById('DivToCheck').clientWidth; 
var stringToFit = 'abcdefghijk'; 
var numChars = 0; 
for(var i=0; i < stringToFit.length; i++) 
{ 
    document.getElementById('hiddenDiv').innerHTML += stringToFit.charAt(i); 
    if (document.getElementById('hiddenDiv').clientWidth > targetWidth) 
    { 
     numChars = i - 1; 
     break; 
    } 
} 

<div id="hiddenDiv" style="visibility: hidden; width: auto;"></div> 
+1

gardez à l'esprit ce qui suit: 1. la div cachée affectera la disposition de la page, et devrait donc avoir * position: absolute; * et, 2. La div masquée devra correspondre à la police les styles du div à vérifier (par exemple * font-family *, * font-size *, * font-weight *, etc.). –

Questions connexes