user2015601
user2015601

Reputation:

document.write text over multiple lines

I have a script that takes an input string from a user with variable length, typically ~ 400-3000 letters. My script does some modification to the string, and then should print it to the screen. Using document write, everything appears on one line. However, I want to have ~ 100 letters for each output line, so the user won't have to scroll ~ 3000 letters to the right to see the whole text.

The only way I could imagine to do this would be a for loop, but maybe someone know a better solution?

Edit:

This is the for loop I am currently using to achieve this

document.write("<p>",">Position: ", (lower+1) + "-" + (lower +print_screen.length), "<br/>");

// print only 70 chars per line
for(i = 0; i < print_screen.length; i += 69){
    document.write(print_screen.substring(i, i+69), "<br/>");
};

document.write("</p>");

Upvotes: 3

Views: 4308

Answers (2)

Guffa
Guffa

Reputation: 700322

You can add breaks in the string using replace and a regular expression. This adds a break at every 100th character:

document.write(theText.replace(/(.{100})/g, '$1<br/>'));

Upvotes: 3

ATOzTOA
ATOzTOA

Reputation: 35950

Use this CSS for your container:

.longtext {
    white-space: -moz-pre-wrap !important;  /* Mozilla, since 1999 */
    white-space: -pre-wrap;      /* Opera 4-6 */
    white-space: -o-pre-wrap;    /* Opera 7 */
    white-space: pre-wrap;       /* css-3 */
    word-wrap: break-word;       /* Internet Explorer 5.5+ */
    word-break: break-all;
    white-space: normal;
}

Upvotes: 3

Related Questions