Originariamente inviato da Xinod
intanto puoi risolvere via css settando width e overflow:auto per quel livello in cui mostri l' anteprima

se vuoi risolvere via javascript ti serve una regexp, per esempio, prima di stampare con innerHTML
contenuto=contenuto.replace(/(\S{20})/g,function($1){return $1+' '});
che forza uno spazio ogni 20 caratteri che non ne contengano

occhio che con innerHTML permetti di iniettare xhtml a tutti gli effetti,
che non e' auspicabile,
filtrerei immediatamente qualsiasi <tag> e, se richiesto, permetterei di formattare con bbcode (come nella textarea in cui sto rispondendo alla discussione)

chiedo scusa, siccome sto entrando da poco nel mondo di html e co. vorrei capire cosa hai scritto da innerhtml in poi