2010-07-07 3 views
0

Si j'écris long texte par exemple ceci:Javascript: Ajouter Pause après chaque 100 caractères

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

Le texte va de la page, j'ai une idée de le fixer, après 100 caractères que je pourrais faire une étiquette <br />. Mais je ne sais pas comment le faire.

Merci pour toute aide!

+1

Vous trouverez en réalité cela ne cause pas vraiment un problème majeur. Créer une chaîne de texte longue comme celle-ci est généralement quelque chose que vous feriez dans un environnement de test. – Andrew

+1

dup: http://stackoverflow.com/questions/1772941/how-can-i-insert-a-character-after-every-n-characters-in-javascript –

+1

Ce n'est pas du texte. Le texte normal contient des mots (lettres avec des espaces) et il casse automatiquement par votre navigateur. – GOsha

Répondre

7

Il suffit d'utiliser la propriété CSS suivant sur l'élément que vous voulez forcer l'emballage dans:

word-wrap: break-word; 

Pas besoin JavaScript!

Si vous vraiment voulez utiliser JavaScript (pour le concept; CSS est mieux pour l'accessibilité et la facilité) alors allez-y. Oh, et une autre chose, si vous utilisez une police qui n'est pas monospace (mais plutôt proportionnelle), couper 100 caractères pourrait être inefficace. Une ligne peut contenir 100 caractères «i», le prochain ayant une autre centaine de caractères «m», dont la taille est très différente.

Oh, et autre chose, vous ne pouvez pas appliquer une regex remplacer sur le innerHTML sauf si tout est du texte. S'il peut y avoir d'autres éléments, vous devez effectuer une boucle sur les nœuds, en appliquant la technique uniquement aux nœuds de texte.

Oh, et une autre chose, ne vous embêtez pas. Trop de problèmes le font avec javascript.

1

Vous pouvez essayer le code suivant

str = 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'; 

len = str.length; 
loop = len/100; 
document.write(loop); 
document.write('<br>'); 

for(i=0; i<=loop; i++){ 
    document.write(str.slice(i*100, (i*100)+100)); 
    document.write('<br>'); 
} 
Questions connexes