Javascript: добавить разрыв после каждых 100 символов - PullRequest
0 голосов
/ 07 июля 2010

Если я напишу длинный текст, например, так:

aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

Текст выходит за пределы страницы, у меня есть идея, чтобы исправить это, после каждых 100 символов я мог сделать тег <br /> Но я не знаю, как это сделать.

Спасибо за любую помощь!

Ответы [ 2 ]

7 голосов
/ 07 июля 2010

Просто используйте следующее свойство CSS для элемента, который вы хотите принудительно обернуть:

word-wrap: break-word;

Нет необходимости в любом JavaScript!

Если вы действительно хотите использовать JavaScript (для концепции; CSS лучше для доступности и простоты), а затем идти вперед.

О, и еще одна вещь, если вы используете шрифт, который не моноширинный (а скорее, пропорциональный)Обрезка на 100 символов может быть неэффективной.В одной строке может быть 100 символов «i», а в другой - еще сто символов «m», которые очень различаются по размеру.

О, и еще одна вещь , вы не можетепросто примените регулярное выражение вместо innerHTML, если это не весь текст.Если там могут быть и другие элементы, вы фактически должны пройтись по узлам, применяя эту технику только к текстовым узлам.не заморачивайсяСлишком много проблем с этим с помощью JavaScript.

1 голос
/ 07 июля 2010

Вы можете попробовать следующий код

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>');
}
...