Webサイトで ckeditor を使用して、ユーザーがHTMLを簡単に入力できるようにします。
ただし、ckeditorから返されるデータは<p></p>
ブロック。 (私はしたくない)
エディターがテキストを何もラップしないようにする構成設定はありますか?
以下をCKEditorのconfig.jsファイルに追加します。
config.enterMode = CKEDITOR.ENTER_BR;
例:
...
CKEDITOR.editorConfig = function (config)
{
config.enterMode = CKEDITOR.ENTER_BR;
...
};
この動作を制御する構成設定は、ユーザーがを押したときに発生する内容に基づいています Enter。
HTMLを初めて使用する人がこれを読む場合に備えて、関連する概念の基本的な説明と、タグを挿入する必要がある理由について説明します。 Enter キーが押されました。
HTMLドキュメントにテキストを入力してから、新しい行に追加のテキストを入力すると、ブラウザーはテキストを2行として表示せず、キャリッジリターンを無視し、文字間の複数のスペースを1つに凝縮することを知っていますスペース。
次のHTML:
qwer
tyui
次のようにレンダリングされます。
qwer tyui
そのため、エディターはHTMLタグを挿入して、ブラウザーに2行目のテキストを新しい行に表示するように指示する必要があります。
これを制御する構成設定はconfig.enterMode
であり、3つのオプションがあります。
デフォルト設定では、毎回段落要素が作成されます Enter 押された:
config.enterMode = CKEDITOR.ENTER_P; // inserts `<p>...</p>`
段落の代わりにdiv
要素を作成することを選択できます。
config.enterMode = CKEDITOR.ENTER_DIV; // inserts `<div></div>`
テキストを何でもラップしない場合は、改行タグを挿入することを選択できます。
config.enterMode = CKEDITOR.ENTER_BR; // inserts `<br />`
CKEditorドキュメントでは、ENTER_BR
設定の使用は推奨されないことが示されています :
注:意味の値と正確さのため、
CKEDITOR.ENTER_P
設定を使用することをお勧めします。エディターはこの設定に最適化されています。
同様の状況を制御する2番目の設定–config.autoParagraph
があります。それがどのように機能するかは、上記のconfig.enterMode
設定に依存します。
autoParagraph
は、span
などのインライン要素を、p
設定で指定されたブロック要素(div
またはenterMode
)でラップするかどうかを決定します。デフォルトではインライン要素をラップするため、次のようなスパンを(HTMLとして)入力すると:
<span>asdfg</span>
次のようにpまたはdiv要素にラップされます。
<p><span>asdfg</span></p>
またはこれ:
<div><span>asdfg</span></div>
これをfalse
に設定した場合、またはenterMode
をCKEDITOR.ENTER_BR
に設定した場合、インライン要素はラップされません。
CKEditorドキュメントにはconfig.autoParagraph
に関するこの注意が含まれています :
注:デフォルト値を変更すると、予測できない使いやすさの問題が生じる可能性があります。
この主題に多少関連する設定が3つあります。
config.fillEmptyBlocks
config.forceEnterMode
config.ignoreEmptyParagraph
利用可能な構成オプションの完全なリストは、次の場所にあります。
私はゲームに少し遅れていることを知っていますが、OPが探しているオプションは次のとおりです:
config.autoParagraph = false;
構成を変更しない非常にシンプルなソリューションは、
shift
+ enter
は改行<br>
、およびenter
は新しい段落を引き起こします。利点は、構成を変更する必要がないことです。さらに、両方があります。
これは上記で完全に回答されていますが、前述のように、メイン設定で実際にこれを変更するべきではありません。
これを行う正しい方法は、.replaceごとです。
つまり.
<form name="title" method="post" action="<?php echo htmlentities($_SERVER['PHP_SELF']);?>">
<textarea id="editor2" name="editor2" rows="300"><?php echo $editor2;?></textarea>
<textarea id="editor1" name="editor1" rows="1" cols="50" onfocus="this.value=''; this.onfocus=null;">Type Tab Title Here:</textarea>
<input type="submit" value="Submit">
</form>
<script type="text/javascript">
CKEDITOR.replace( 'editor2', {
enterMode: CKEDITOR.ENTER_BR,
on: {'instanceReady': function (evt) { evt.editor.execCommand('maximize'); }},
});
</script>
<p>
タグを除外し、Ckeditorで太字のイタリック体の上付き文字、下付き文字などの基本的な編集ツールのみが必要な場合は、次の手順に従います。
私は絶えず36時間を研究したので、これについて100%確信しています:)
ステップ1:このスクリプトをPHP Webページに追加します
<script type="text/javascript">
CKEDITOR.replace( 'editor1', {
enterMode: CKEDITOR.ENTER_BR,
on: {'instanceReady': function (evt) { evt.editor.execCommand('');}},
});
</script>
ステップ2:このようにid="editor2"
とonfocus="this.value='';"
をテキストエリアに追加します
<textarea id="editor2" name="AsYourWish" onfocus="this.value='';">
ステップ3:必ずClass="ckeditor"
をTextareaから削除してください。
ステップ4:発生しなかった場合、Webページをリロードしますキャッシュ/履歴を削除し、PC /ラップトップを再起動します。
ステップ5:その完了:)
Django-ckeditor
の場合、settings.py
ファイルにこの設定を追加します。
ENTER_P = 1 # default
ENTER_BR = 2
ENTER_DIV = 3
CKEDITOR_CONFIGS = {
'default': {
'enterMode': ENTER_BR,
},
}