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

Javascript 从内容可编辑div中获取已删除的字符,javascript,jquery,html,character,Javascript,Jquery,Html,Character,我使用的是内容可编辑div,因为我想在文本区域显示用户选择的表情 我想知道使用退格或删除按钮删除的字符是什么 是否可以通过jquery或javascript了解字符 更新 这根本不是重复,因为所有答案都是关于如何跟踪按下的键,而不是关于删除的字符。我没有一个干净的解决方案。但是,如果按退格键,此图标将显示已删除的字符: var lastText = $('#editable').text(); $('#editable').keyup(function(event){ if (event.w

我使用的是
内容可编辑div
,因为我想在文本区域显示用户选择的表情

我想知道使用
退格
删除
按钮删除的
字符是什么

是否可以通过
jquery
javascript
了解字符

更新


这根本不是重复,因为所有答案都是关于如何跟踪按下的键,而不是关于删除的字符。

我没有一个干净的解决方案。但是,如果按退格键,此图标将显示已删除的字符:

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;
      }
    }
  }
});
var lastText=$('#可编辑').text();
$(“#可编辑”).keyup(函数(事件){
if(event.which==8 | | event.which==46){
var newText=$(this.text();

对于(var i=0;i您可以使用
preventDefault()
函数执行您想要的操作

下面是一个使用
的示例,但它应该扩展到任何元素:

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


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

@Blazemonger我不知道是否可以实现这一点?您可以尝试捕获退格按钮…@Joseph我只能跟踪按下的键。但是如何获取删除的字符我不知道是否有重复ady解决方案。您可以将键控后的文本与when
event.which==8
之前的文本进行比较,然后找到缺少的字符。但这并不漂亮:(@dystroy请删除我描述上方的重复链接,因为看到此问题的用户将得到错误的答案这正是我所认为的解决问题的方法。如果单击演示并在最后一个字符上按backspace键,它会起作用-但如果您在文档中的任何位置键入任何内容,则下一个backspace“将报告错误的字符。@SLC很抱歉,我无法重现您的问题。如果按backspace键,您只能设置
lastText=newText
。因此,如果在文档开头键入“abc”,则lastText和newText不匹配。当按backspace键时,它将报告错误的字符。您需要为每次按键设置lastText=newText。”如果移除的角色不是最后一个?正如我在最后一段中所说,我没有做所有的工作;)说真的…这里唯一的困难是找到要删除的字符。如果是这样的话,你真的需要像我那样做,但是用一些获取当前光标位置的代码替换最后一个字符的部分。这是一个单独的问题。如果你想攻击我的答案,那就继续吧。你的答案包括lves在整个文档中逐字符迭代。如果文本是大型文档,则会冻结浏览器。但是,无论文本大小如何,我的解决方案都是即时的。此外,由于存在相当大的错误,您的解决方案将无法正常工作。
$('#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();
    }

});