Firefox用 换行<br>
,Chrome 和 Safari用 换行<div>...</div>
,Internet Explorer 和 Opera 用段落<p>...</p>
换行。
我正在寻找一种方法来强制每个浏览器在换行时只创建段落。
我知道ckeditor支持这个功能,但我怎样才能在我的自定义编辑器中简单地实现它呢?
Firefox用 换行<br>
,Chrome 和 Safari用 换行<div>...</div>
,Internet Explorer 和 Opera 用段落<p>...</p>
换行。
我正在寻找一种方法来强制每个浏览器在换行时只创建段落。
我知道ckeditor支持这个功能,但我怎样才能在我的自定义编辑器中简单地实现它呢?
对我来说是添加document.execCommand('formatBlock', false, 'p');
到keypress
contenteditable div 中的事件的解决方案。例如:
element.addEventListener('keypress', function(ev){
if(ev.keyCode == '13')
document.execCommand('formatBlock', false, 'p');
}, false);
希望它会帮助某人。:)
如果您想在<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);
试试 execCommand "insertparagraph",例如:
document.execCommand('insertParagraph',false,'id for new p')
或者,您可以处理 keydown 事件,捕获 keycode 13(不带修饰符),然后做任何您喜欢的事情。
已更正
你没有具体说明你想要这个功能在哪个编辑器中,但你提到了 CKEditor 所以我假设你在问它。只需将其添加到您的 config.js 文件中:
config.enterMode = CKEDITOR.ENTER_P;