execCommand insertHTML多次插入

我正在使用contentEditable DIV中的一个小型RTE。我已经向DIV附加了一个按键事件处理程序,它监视何时触发了ENTER键以及选择的位置。如果它在文本节点内,我将插入一个新行。但是,这个代码有缺陷并经常插入4个换行而不是一个换行(我必须按4次撤消才能回到光标所在的位置 - 这就是我认为execCommand多次触发的原因)。另一方面,有时需要两次按ENTER键才能插入新行。 这是一个keypress事件处理程序的代码片段,一旦确定按下了ENTER键:
if(selection.focusNode.nodeType!=3){ return; }
ev.preventDefault();
var HTML='
';
toolbar.target.ownerDocument.execCommand('insertHTML',false,HTML);
我想使用execCommand来保留浏览器的撤消行为。我不想插入
<br>
,因为此插入只发生在文本节点中,并且出于后期处理的目的,我需要在文本节点中使用 n而不是
<br>
或任何其他块类型标记。我正在使用unicode换行符
&#x000A;
。我已经尝试了回车字符
&#x000D;
以及类似的结果。我不能使用
n
insertHTML
,因为这不是正确的HTML。 任何人都有关于如何确保execCommand只运行一次的想法?     
已邀请:

要回复问题请先登录注册