Javascript 当行为空时,document.execCommand(';insertHtml';)不工作两次
当我两次使用document.execCommand(insertHTML)时(例如,两次按enter键以插入新段落),什么都不会发生。因此,只创建了一个新行 HTML: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键时,如何创建两个新的空段落呢 另
一些文本
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;
}
});