Javascript execCommand是如何执行的;insertBrOnReturn“;工作

Javascript execCommand是如何执行的;insertBrOnReturn“;工作,javascript,execcommand,Javascript,Execcommand,我在Chrome上尝试了以下代码: document.execCommand("insertBrOnReturn", false, true); 无论我将最后一个参数设置为true还是false,行为都不会改变:返回时,将添加新的元素 一定错过了什么。。。有什么想法吗?insertBrOnReturn是一个特定于Mozilla的命令,Chrome不支持它。您可以通过以下方式进行测试: document.queryCommandSupported('insertBrOnReturn') ,

我在Chrome上尝试了以下代码:

document.execCommand("insertBrOnReturn", false, true);

无论我将最后一个参数设置为true还是false,行为都不会改变:返回时,将添加新的
元素


一定错过了什么。。。有什么想法吗?

insertBrOnReturn
是一个特定于Mozilla的命令,Chrome不支持它。您可以通过以下方式进行测试:

 document.queryCommandSupported('insertBrOnReturn')
,它在Firefox中警告
true
,但在Chrome中警告
false

如果只想插入

,请尝试:

document.execCommand('insertHTML', false, '<br><br>');
document.execCommand('insertHTML',false,

');

另外,请检查此项:

我遇到了这个答案,但不喜欢在Chrome中,如果光标位于段落开头,它会添加两个分隔符。将第二个

更改为
\u200C
可以让Chrome完美地工作,而不是Safari

document.execCommand("insertHTML", false, "<br>\u200C");
document.execCommand(“insertHTML”,false,
\u200C”);
什么是
\u200c?
不确定。我在这里找到了它

根据:


您可以在以下位置查看specs命令:

我想知道为什么Chrome在返回时默认不插入新的p元素而不是DIV。您可能知道原因吗?实际上,您可以通过以下命令将p作为段落分隔符:document.execCommand('defaultParagraphSeparator',false,'p');此外,它只适用于DIV和P.U+200C是一个零宽度非接合器,非常类似于U+200B零宽度空间。请注意,如果用户使用箭头键进行导航,则会产生可见效果,用户需要按两次以导航到箭头键的任一侧。当您想通过点击
Backspace
键返回时,您需要点击两次以删除新的
&zwnj字符,然后是

对于我来说,这是一个比
插入TML
+

更合适的解决方案。在所有答案中,这是最有效的,无需进行任何破解。唯一奇怪的是,它在结尾保留了一个未使用的

,但它在页面上似乎不可见,所以这不是一个真正的问题。
document.execCommand("insertLineBreak");