输入一个词后,光标跳到该词的开头

问题描述

我在使用 mark.js 时正在研究“文本检查器”。

我遇到的问题是,一旦我输入单词并且它被标记/突出显示,光标就会跳转到该单词的开头。这是一个 example

也许解决方案是在触发标记之前以某种方式保存光标位置并在标记完成后加载它?由于我不知道何时触发标记,所以在每个输入上保存光标位置并再次加载 index+1?

欢迎任何帮助、指示、参考。

谢谢

<div class="textarea" id="textarea" contenteditable="true">
    I hate blood pudding and so do you.
</div>
.red { background-color: lightcoral; }

.green{ background-color: lightgreen; }

.brown{ background-color: burlywood; }

var textarea = document.getElementById("textarea");
var instance = new Mark("div.textarea");

var red   = ["red","blood"];
var brown = ["brown","pudding"];
var green = ["green","grass"];

var markWords = function() {
    instance.mark(red,{
       seperatewordsearch: false,className: "red","accuracy": {
          "value": "exactly","limiters": [",",".","!","?"]
       }
    });

    instance.mark(brown,{
        seperatewordsearch: false,className: "brown","accuracy": {
           "value": "exactly","?"]
        }
    });
   
     instance.mark(green,className: "green","?"]
        }
    });
}

markWords();

textarea.addEventListener("input",markWords);

感谢@mcernak 帮助我做到了这一点。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)