div,textareas,文本和光标检测

时间:2012-05-12 17:37:13

标签: javascript html size contenteditable

我有以下问题:

1。)我想使用可竞争的div或textarea(最好是一个可信的div,因为我也可以使用html标签,而不仅仅是文本),作为书写板。但是,一旦光标到达div / textarea的BOTTOM RIGHT角,我希望写入停止。这似乎很难实现。我已经管理了max-height和overflow:hidden来使元素(div / textarea)不扩展,但是用户仍然可以键入,它只是不可见的,不需要的东西。我想要的是当光标到达右下角然后继续在一个新的空“页面”上停止写入。

我的第一个想法是使用一些等宽字体并计算允许的最大字符,但问题是第1并非所有浏览器显示相同数量的相同字体的等宽字符,每行和第二个div的大小可以变化,不是不变的。

理想的是div,这样我就可以输入html标签(粗体,斜体等),显示内容的div可以有不同的大小,具体取决于屏幕分辨率。

2。)给定一个表示“页面”的div,它从数据库中填充文本/ html,如何只显示填充div的内容,以及用户何时按下“下一页”按钮,显示下一个内容。这对我来说似乎是无法解决的,通过javascript搞清楚可以在div中填充多少内容。

非常感谢关于这两个相关问题的任何想法

没有flash,没有java,没有插件。只:html,css,javascript

提前致谢。

1 个答案:

答案 0 :(得分:0)

您可以尝试以下代码。

<div id="editable_div"></div>

var content_id = document.getElementById("editable_div");  

    max = 10;

    //binding keyup/down events on the contenteditable div
    $('#'+content_id).keyup(function(e){ check_charcount(content_id, max, e); });
    $('#'+content_id).keydown(function(e){ check_charcount(content_id, max, e); });

    function check_charcount(content_id, max, e)
    {   
        if(e.which != 8 && $('#'+content_id).text().length > max)
        {
           // $('#'+content_id).text($('#'+content_id).text().substring(0, max));
            e.preventDefault();
        }
    }