html div 光标位置,ContentEditable div-在更新内部html之后设置光标位置

// some mock logic to identify spelling error

const errorWords = ["helloo", "dudeee"];

// Find words from string like ' Helloo world .. '

// Perhaps you could find a better library you that does this logic.

const getWords = (data) =>{

console.log("Input: ", data);

const allWords = data.split(/\b/);

console.log("Output: ", allWords)

return allWords;

}

// Simple mock logic to identify errors. Now works only for

// two words [ 'helloo', 'dudeee']

const containsSpellingError = word => {

const found = errorWords.indexOf(word) !== -1;

console.log("spell check:", word, found);

return found;

}

const processSpellCheck = text => {

const allWords = getWords(text);

console.log("Words in the string: ", allWords);

const newContent = allWords.map((word, index) => {

var text = word;

if(containsSpellingError(word.toLowerCase())) {

console.log("Error word found", word);

text = $("")

.addClass("spell-error")

.text(word);

}

return text;

});

return newContent;

}

function initalizeSpellcheck(editorRef) {

var editorSize = editorRef.getBoundingClientRect();

var spellcheckContainer = $("

.addClass("spell-check")

.prop("spellcheck", "false");

var spellcheckSpan = $("")

.addClass("spell-check-text-content")

.css({

width: editorSize.width,

height: editorSize.height,

position: "absolute",

zIndex: -1

});

var text = $(editorRef).text();

var newContent = processSpellCheck(text);

spellcheckSpan.append(newContent);

spellcheckContainer.append(spellcheckSpan);

spellcheckContainer.insertBefore(editorRef);

$(editorRef).on("input.spellcheck", function(event) {

var newText = $(event.target).text();

var newContent = processSpellCheck(newText);

$(".spell-check .spell-check-text-content").text("");

$(".spell-check .spell-check-text-content").append(newContent);

});

}

$(document).ready(function() {

var editor = document.querySelector("#editor");

initalizeSpellcheck(editor);

});

#editor {

border: 1px solid black;

height: 200px;

}

.spell-check {

color: transparent;

}

.spell-error {

border-bottom: 3px solid orange;

}

dudeee

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值