当按下回车键时,我正在尝试创建一个新段落。我可以做到,而且效果很好。但是现在说光标是段落的中间 - 当按下回车时,我试图选择从光标位置到段落末尾的范围。从现有段落中删除它并将其添加到下面的新段落中。
我正在尝试修改此处答案中的代码:Contenteditable - extract text from caret to end of element
$(document).on('keydown', 'p[contenteditable="true"]', function(e) {
if(e.which == 13) { //new paragraph on enter/return
e.preventDefault();
var sel = window.getSelection();
if (sel.rangeCount) {
var selRange = sel.getRangeAt(0);
var blockEl = selRange.endContainer.parentNode;
var range = selRange.cloneRange();
range.selectNodeContents(blockEl);
range.setStart(selRange.endContainer, selRange.endOffset);
remainingText = range.extractContents();
$(this).after('<p contenteditable = "true">'+ remainingText +'</p>');
$(this).next('p').focus();
}
我没有取得太大的成功——主要是因为我对范围、节点和选择对象缺乏了解。有人能够解释这些对象是如何工作的,以及我如何调整上面的答案以适应我的情况。