从内容可编辑div中获取已删除的字符

时间:2013-04-02 15:21:09

标签: javascript jquery html character

我正在使用content editable div,因为我想在文本区域中显示用户选择的表情符号。

我想通过characterdeleted按钮了解backspace delete的内容。

是否可以通过jqueryjavascript知道字符?

更新

这完全没有重复,因为所有答案都是关于如何跟踪按下的键而不是被选中的字符。

2 个答案:

答案 0 :(得分:3)

我没有干净的解决方案。但是如果您按下退格键,则会显示已删除的字符:

var lastText = $('#editable').text();
$('#editable').keyup(function(event){
  if (event.which==8 || event.which==46) {
     var newText =  $(this).text();
    for (var i=0; i<lastText.length-1; i++) {
      if (lastText[i]!=newText[i]) {
       console.log("char '" +  lastText[i] + "' was removed at index "+i);
        lastText = newText;
        return;
      }
    }
  }
});

Demonstration

答案 1 :(得分:0)

您可以使用preventDefault()功能执行您想要的操作。

以下是使用<textarea>的示例,但它应扩展到任何元素:

http://jsfiddle.net/4dThe/

$('#txtArea').keydown(function(e) { 

    if (e.which == 8)
    {
     var value =   $(this).val();
     var lastchar = value.substring(value.length - 1);

        alert("Last character is: " + lastchar);
        $(this).val(value.substring(0, value.length - 1));
        e.preventDefault();
    }

});

preventDefault()方法阻止退格操作,因此不会删除最后一个字符。然后,您可以查看最后一个字符是什么,并自己执行退格操作。

您需要更改上面的示例以检测当前光标位置以删除正确的字符,但这是一个开始。