Firefoxは新しい行を壊し<br>
、ChromeとSafariは新しい行を壊し<div>...</div>
、InternetExplorerとOperaは<p>...</p>
新しい行に段落を使用しています。
新しい行に分割するときに、各ブラウザに段落のみを作成させる方法を探しています。
ckeditorがこの機能をサポートしていることは知っていますが、カスタムエディターで簡単に実現するにはどうすればよいですか?
Firefoxは新しい行を壊し<br>
、ChromeとSafariは新しい行を壊し<div>...</div>
、InternetExplorerとOperaは<p>...</p>
新しい行に段落を使用しています。
新しい行に分割するときに、各ブラウザに段落のみを作成させる方法を探しています。
ckeditorがこの機能をサポートしていることは知っていますが、カスタムエディターで簡単に実現するにはどうすればよいですか?
私にとっては、contenteditabledivのイベントに追加document.execCommand('formatBlock', false, 'p');
するソリューションでした。keypress
例えば:
element.addEventListener('keypress', function(ev){
if(ev.keyCode == '13')
document.execCommand('formatBlock', false, 'p');
}, false);
それが誰かを助けることを願っています。:)
<p>
改行後に改行を追加したいが、前の行のフォーマットをそのままにしておきたい場合(つまり、改行している場合<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')
または、キーダウンイベントを処理し、キーコード13(修飾子なし)をキャッチして、好きなことを行うこともできます。
修正済み
この関数が必要なエディターは特定されていませんが、CKEditorについて言及しているので、それについて質問していると思います。これをconfig.jsファイルに追加するだけです。
config.enterMode = CKEDITOR.ENTER_P;