Javascript HTML5内容可编辑新行跳转两次
在下面的示例中,关于新线有一些奇怪的行为。 例如,在Chrome中,当按两次enter键时,行光标向下跳3行,而不是2行。在Firefox中,它总是这样跳Javascript HTML5内容可编辑新行跳转两次,javascript,jquery,contenteditable,Javascript,Jquery,Contenteditable,在下面的示例中,关于新线有一些奇怪的行为。 例如,在Chrome中,当按两次enter键时,行光标向下跳3行,而不是2行。在Firefox中,它总是这样跳 jQuery(#message”).on(“keydown”,函数(事件){ 如果(event.keyCode===13){ document.execCommand('insertHTML',false',\n\n'); 返回false; } }); jQuery(#message”).on(“keyup”,函数(){ jQuery(“#
jQuery(#message”).on(“keydown”,函数(事件){
如果(event.keyCode===13){
document.execCommand('insertHTML',false',\n\n');
返回false;
}
});
jQuery(#message”).on(“keyup”,函数(){
jQuery(“#output”).html(jQuery(this.html());
});代码>
#消息,
#结果{
宽度:100%;
高度:100px;
边框:1px纯黑;
空白:预处理;
}
它可能会跳3行,因为回车键会插入一行新行,然后再插入2行新行
尝试这样做:
jQuery("#message").on("keydown", function (event) {
if (event.keyCode === 13) {
event.preventDefault();
document.execCommand('insertHTML', false, '\n\n');
return false;
}
});
预期的行为是什么?只是进入下一行,中间没有空行。我写了,我给你写了一条评论。你想要\n
这样你就可以在数据库中保存换行符了吗?如果是这样,我会在它进入数据库之前在服务器上处理它,而不是在前端。不,我正在向这个div中添加额外的元素,为了保持代码尽可能干净,我不希望处理其中的任何其他元素。很多逻辑已经存在,所以我不能只是改变行为,我必须以某种方式修复它…:)这很奇怪。对我来说,有时它只跳一行,大多数时候它跳两行。但从来没有跳过三次。(在chrome中)//编辑:nvm,现在我明白你所说的3行的意思了。(1+2 lol)