[我在这篇文章how-to-insert-text-into-the-textarea-at-the-current-cursor-position中使用Jayant的代码插入Evernote编辑器。
由于Evernote编辑器是富文本编辑器,所以我将el.value更改为el.innerText,当我运行它时,原始格式不高兴,新文本不在光标所在的位置,它总是插入到顶部编辑器的一行。
那么如何使用innerHTML或innerText插入Evernote编辑器?
function typeInTextarea(newText, el = document.activeElement) {
const start = el.selectionStart
const end = el.selectionEnd
const text = el.innerText
const before = text.substring(0, start)
const after = text.substring(end, text.length)
el.innerText = (before + newText + after)
el.selectionStart = el.selectionEnd = start + newText.length
el.focus()
}
使用此代码并在Chrome的WYSIWYG HTML编辑器中进行测试,它可以工作。
document.execCommand("insertText", "false", text);