Contenteditable execCommand insertHTML多次插入

Contenteditable execCommand insertHTML多次插入,contenteditable,execcommand,Contenteditable,Execcommand,我正在contentEditable DIV中处理一个小RTE。我在DIV中附加了一个按键事件处理程序,用于监视何时按下ENTER键以及选择的位置。如果它位于文本节点内,则插入新行。但是,这段代码有缺陷,经常插入4个换行符而不是一个换行符(我必须按“撤消”4次才能返回光标所在的位置-这就是为什么我认为execCommand会多次触发的原因)。另一方面,有时需要按两下ENTER键才能插入新行 以下是确定按下ENTER键后,keypress事件处理程序的代码片段: if(selection.focu

我正在contentEditable DIV中处理一个小RTE。我在DIV中附加了一个按键事件处理程序,用于监视何时按下ENTER键以及选择的位置。如果它位于文本节点内,则插入新行。但是,这段代码有缺陷,经常插入4个换行符而不是一个换行符(我必须按“撤消”4次才能返回光标所在的位置-这就是为什么我认为execCommand会多次触发的原因)。另一方面,有时需要按两下ENTER键才能插入新行

以下是确定按下ENTER键后,keypress事件处理程序的代码片段:

if(selection.focusNode.nodeType!=3){ return; }
ev.preventDefault();
var HTML='
';
toolbar.target.ownerDocument.execCommand('insertHTML',false,HTML);
我想使用execCommand保留浏览器的撤消行为。我不想插入

,因为此插入仅发生在文本节点中,出于后处理目的,我需要\n在文本节点中插入,而不是在

或任何其他块类型标记中插入。我使用的是unicode换行符

。我已经尝试了回车符

以及类似的结果。我不能将
\n
insertHTML
一起使用,因为这不是正确的HTML


有人知道如何确保execCommand只运行一次吗?

我也有同样的问题。你找到解决问题的办法了吗?@nrako:没有。我希望我有,但我最终放弃了项目后,多次挫折与execCommand。当蒂姆正在更换execCommand时,我聚精会神地看了一会儿。现在还没有,但我仍然充满希望。用ppk来看看能做些什么。