内容可编辑区 - 在.html()之后更新光标位置

时间:2015-07-01 14:36:11

标签: javascript jquery html contenteditable

使用contenteditable div,我想强调符合某个标准的单词。其中之一是用户输入的内容已达到该区域允许的最大长度。

我有点工作 - 但是一旦达到阈值,光标位置就会重新开始(并且用户有效地反向输入!)。

我需要这个在IE8 +中工作。

在替换区域内容之前,是否有某种方法可以获得该位置并将其设置回原位,或者我的思路是否错误?

由于

JS小提琴: http://jsfiddle.net/vfgLjf0c/

$(document).on("keypress", "div#editableContent", function(e) {

    var element = $(this);

    // KEYUP
    if (e.type == "keypress") {
        var curLen  = element.text().length;
        var maxLen  = element.attr("data-maxlength");
        if (curLen > maxLen) {

            var overHang    = element.text().substr(maxLen);
                overHang    = "<em style='background: #fcc;'>" + overHang + "</em>";
            var newString   = element.text().substr(0, maxLen) + overHang;
            $(this).html(newString);


        }
    }

});

更新回答了我自己的问题 - 见下文。

1 个答案:

答案 0 :(得分:0)