3

Firefox用 换行<br>,Chrome 和 Safari用 换行<div>...</div>,Internet Explorer 和 Opera 用段落<p>...</p>换行。

我正在寻找一种方法来强制每个浏览器在换行时只创建段落。

我知道ckeditor支持这个功能,但我怎样才能在我的自定义编辑器中简单地实现它呢?

4

4 回答 4

4

对我来说是添加document.execCommand('formatBlock', false, 'p');keypresscontenteditable div 中的事件的解决方案。例如:

element.addEventListener('keypress', function(ev){
    if(ev.keyCode == '13')
        document.execCommand('formatBlock', false, 'p');
}, false);

希望它会帮助某人。:)

于 2013-08-11T12:47:22.753 回答
2

如果您想在<p>换行后添加一个新行,但又想保持上一行的格式不变(即您从 a 换行<h1>),请结合@MorganTiley 和@PageOnline 的答案:

editor.addEventListener('keypress', function(e){
    if(e.keyCode == '13') {
      e.preventDefault();
      document.execCommand('insertParagraph', false);
      document.execCommand('formatBlock', false, 'p');
    }
  }, false);
于 2016-01-27T21:03:46.123 回答
1

试试 execCommand "insertparagraph",例如:

document.execCommand('insertParagraph',false,'id for new p')

或者,您可以处理 keydown 事件,捕获 keycode 13(不带修饰符),然后做任何您喜欢的事情。

已更正

于 2012-06-05T14:15:28.527 回答
-4

你没有具体说明你想要这个功能在哪个编辑器中,但你提到了 CKEditor 所以我假设你在问它。只需将其添加到您的 config.js 文件中:

config.enterMode = CKEDITOR.ENTER_P;
于 2012-06-04T14:14:03.680 回答