Contenteditable&#34; new line&#34; <div>而不是<br/>

时间:2017-03-21 17:29:19

标签: javascript html5 contenteditable

首先抱歉我的英语不好, 我正在尝试创建一个文本编辑器,它在Google Chrome上正常工作但在MozillaSo上问题在于换行符,我有一个contenteditable元素,每当我输入一些东西时点击ENTER,它会创建一个新的<br>并将新的行文本放在它之后。我想要的只是在[返回]之后获得<div>而不是像Google Chrome一样获得<br> 例如 在chrome上

<div contenteditable="true">
    <div> <span class="simpleText">line 1</span> </div>
    <div> <span class="simpleText">line 2</span> </div>
</div>

on firefox

<div contenteditable="true">
    <span class="simpleText">line 1</span> 
    <br>
    <span class="simpleText">line 2</span> 
</div>

谢谢

1 个答案:

答案 0 :(得分:0)

试试这段代码:

document.querySelector('div[contenteditable]').onkeydown = function(e) {
    if (e.keyCode === 13) { // user pressed enter
      document.execCommand('insertHTML', false, '<div>');
      return false;
    }
};