Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/480.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当行为空时,document.execCommand(';insertHtml';)不工作两次_Javascript_Jquery_Html_Css - Fatal编程技术网

Javascript 当行为空时,document.execCommand(';insertHtml';)不工作两次

Javascript 当行为空时,document.execCommand(';insertHtml';)不工作两次,javascript,jquery,html,css,Javascript,Jquery,Html,Css,当我两次使用document.execCommand(insertHTML)时(例如,两次按enter键以插入新段落),什么都不会发生。因此,只创建了一个新行 HTML: 一些文本 JS: $(“#编辑器”).on('keyup keydown keypress',函数(e){ 如果(如keyCode===13){ document.execCommand(“insertHTML”,false,”; 返回false; } }); 那么,当用户按两次enter键时,如何创建两个新的空段落呢 另

当我两次使用document.execCommand(insertHTML)时(例如,两次按enter键以插入新段落),什么都不会发生。因此,只创建了一个新行

HTML:

一些文本

JS:

$(“#编辑器”).on('keyup keydown keypress',函数(e){
如果(如keyCode===13){
document.execCommand(“insertHTML”,false,
”; 返回false; } });
那么,当用户按两次enter键时,如何创建两个新的空段落呢


另请参见fiddle:(按两次enter键,什么也不会发生-只有当您输入字符时,才能创建新段落)

您在注释“return false”语句后是否尝试过,因为它会阻止执行编辑器的默认事件?您的意思是省略“return false”?因此,如果不返回false,则会出现另一个问题->当我在一个段落上按enter键时,两个新段落中的文本将同时创建;)返回false可防止所有后续事件[keyup、keydown、keypress]!删除“return false”语句后按enter键,写入的逻辑将按keydown、keypress、keyup顺序执行三次。您能解释一下为什么要绑定三个事件来执行相同的逻辑吗?难道只有按键事件就足够了吗?是的!你说得对,但问题仍然存在。我在这里用JSFIDLE->您必须使用
document.execCommand()
?或者,您可以选择只使用jQuery的解决方案吗?
<div id="editor" contenteditable="true"><p>Some text</p></div>
$('#editor').on('keyup keydown keypress',function(e){
    if(e.keyCode === 13){
    document.execCommand("insertHTML",false,"<p><br></p>");
    return false;
    }
});