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>
Est-ce que la div ont une largeur prédéfinie? – Sarfraz
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? –
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) –