我有一个具有contenteditable
属性的div,当按下回车键时,我希望在文本中添加一个new line
字符。
我可以这样实现:
$("#editable").on("keydown", function(e) {
if (e.keyCode === 13) {
document.execCommand('insertHTML', false, '\n');
}
});
这段代码是可以正常工作的,但它会在文本中添加<br>
标签(在chrome浏览器中还包括<div>
标签)。
我需要防止在按下回车键时添加这些标签。
我知道两种方法:
1)使用preventDefault()
方法,但使用此方法后,用户需要按两次回车键才能换行。这很糟糕。
2)使用replace()
方法从整个文本中删除这些标签。但在这种情况下,所有这些标签(甚至是用户特意在文本中输入的标签)都将被删除,所以这也是不好的方法。
如何解决这个问题?