想实现的功能是,用javascript往固定大小的div里连续写入文字,
当div被刚好填满时,javascript自动生成一个新div写入后续文字。
div的大小固定,也不能出现滚动条。我不会判断写入到哪个字符时
div就满了,再多写入一个字符就溢出。请问大体应该怎么弄?多谢了!

解决方案 »

  1.   

    <div id=div0 style="width:200px;height:100px;"></div>
    <div id=div1></div>
    <script>
    var d = document.getElementById("div0");
    var h = d.offsetHeight;
    var str = "这里是你要输入的内容";
    var k = 0;
    for(var i=0;i<str.length;i++){
    d.innerHTML += str.substr(i,1);
    if(d.offsetHeight>h){
    d.innerHTML = str.substr(0,i);
    k = i;
    break;
    }
    //从k开始把剩下的内容输入到另一个div
    document.getElementById("div1").innerHTML = str.substr(k);
    }
    </script>
      

  2.   

    使用客户端脚本,但内容发生变化产生事件,然后判断有几行,当超过设定的行后添加一个新的DIV。
    不过这样做有什么作用?
      

  3.   

    多谢各位关注,我刚开始学javascript,对系统自带的
    方法还不是很熟。多谢1楼,我仔细学习学习你的代码。
    我的目的是实现类似于word换页显示的效果,字符间距
    和行距都用浏览器默认,我只要判断是否溢出,需要换
    页时生成一个新页面继续显示。网上的字处理网站只有
    zoho能勉强实现这个功能,我就是想模仿它的效果。还
    只是一个设想,不知道还会遇到什么困难,欢迎各位给
    点建议。
      

  4.   

    获取字符串长度与div的宽度对比
      

  5.   

    判断offsetHeigth应该是最好的办法了.
     字符多会撑高,但是不会撑宽  每次写字进去了,判断offsetHeigth是不是和Heigth相等就行了.
      

  6.   

    用SUBSTRING截取字符串,然后比较下啊。
      

  7.   

    效果是出来了,但效率很低,有待改进<div id="divmain" style="width:100%">
    <div id="div1" style="width:100%;border:1px solid black;"></div>
    </div> <script> 
    window.onload = function(){
    var str = "想实现的功能是,用javascript往固定大小的div里连续写入文字,当div被刚好填满时,javascript自动生成一个新div写入后续文字。div的大小固定,也不能出现滚动条。我不会判断写入到哪个字符时div就满了,再多写入一个字符就溢出。";
    var currentid = 1;
    // 让这个字符串足够长,没实际作用
    for(var i = 0;i < 3;i++){
    str += str;
    } for(var i = 0;i < str.length;i++){
    var currentdiv = document.getElementById("div" + currentid);
    var theheight = 100;// 允许的最大高度
    if(currentdiv.offsetHeight > theheight){
    document.getElementById("div" + currentid).innerHTML = document.getElementById("div" + currentid).innerHTML.substring(0,document.getElementById("div" + currentid).innerHTML.length - 1);
    i-=2; newdiv = document.createElement("div");
    newdiv.style.border = "1px solid black";
    newdiv.style.width = "100%";
    currentid++;
    newdiv.id = "div" + currentid;
    document.getElementById("divmain").appendChild(newdiv);
    }else{
    document.getElementById("div" + currentid).innerHTML += str.charAt(i);
    }
    }
    }
    </script>
      

  8.   


    <div id="divmain" style="width:100%">
        <div id="div1" style="width:100%;border:1px solid black;"></div>
    </div> <script> 
    window.onload = function(){
       var str = "aaaaaaaaaaa"; 
        var currentid = 1;
        // 让这个字符串足够长,没实际作用
        for(var i = 0;i < 3;i++){
            str += str;
        }    for(var i = 0;i < str.length;i++){
            var currentdiv = document.getElementById("div" + currentid);
            var theheight = 100;// 允许的最大高度
            if(currentdiv.offsetHeight > theheight){
                document.getElementById("div" + currentid).innerHTML = document.getElementById("div" + currentid).innerHTML.substring(0,document.getElementById("div" + currentid).innerHTML.length - 1);
                i-=2;            newdiv = document.createElement("div");
                newdiv.style.border = "1px solid black";
                newdiv.style.width = "100%";
                currentid++;
                newdiv.id = "div" + currentid;
                document.getElementById("divmain").appendChild(newdiv);
            }else{
                document.getElementById("div" + currentid).innerHTML += str.charAt(i);
            }
        }
    }
    </script>楼上这个问题怎么解决?如果都是str= 200个连续的aaaaaaaaaaaaaaaaaaaaaaa......
      

  9.   

    个人觉得,这种情况一般不会出现,但如果出现了,可以加下面的代码解决
    遗憾的是,只对IE6有效,对FF无效newdiv.style.wordWrap = "break-word";
    newdiv.style.wordBreak = "normal";同时第一个DIV的样式也要增加一些
    <div id="div1" style="width:100px;border:1px solid black;word-wrap:break-word;word-break:break-all;"></div>
      

  10.   

    多谢各位,现在看来offsetHeight是一个可行的方法。我刚开始想找一个读取光标像
    素位置的函数。写入一个字符时,系统里是否应该有一个确定它位置的光标,有没有
    函数能把它的位置参数读出来?
      

  11.   

    效率不高, 像word那种段落格式的连续性也不一定能做到, 尤其是两端齐的效果
      

  12.   

    嗯,效率估计高不了,实现段落的方法我正在琢磨,用javascript
    正则表达式识别段落标记应该可以做。两端对齐不敢奢望,能正确
    分页就不错了。
    网上查到Firefox的onoverflow事件可以直接判断文本溢出,IE没有
    这个事件。有人遇到和我类似的问题,网上有些解决方法,和上面
    几位说的相近。
    http://codingforums.com/showthread.php?t=94422