2017-08-15 1 views
2

右クリックしてコンテキストメニューから「Edit Div」をクリックすると、CKEditorが正しいdivを取得しない問題が発生しています以下のHTMLオブジェクト。たとえば、私が 'well' divを右クリックすると、Edit Divモーダルウィンドウで 'jumbotron'が返されます。私が右クリックして 'パネル' divを編集すると、私はまた、 'コンテナ' divを取得します。これは既知の問題ですか?このための回避策はありますか?私は両方のwellpanel divタグをクリックすると該当のわずかな間違いがあると信じてコンテキストメニューでDivを編集しない正しいDivを編集する(CKEditor v。4.6.2)

<div class="container"> 
<div class="jumbotron"> 
<h1>Jumbotron</h1> 

<p>Sample text here </p> 
</div> 

<div class="well">this is a well</div> 

<div class="panel">this is a panel</div> 
</div> 

答えて

0

container div要素を返します。

あなたが参照しているプラ​​グイン(Div Container Manager)はプラグインで、divコンテナで動作し、プレーンdivではなくです。 divコンテナでは、内部に子段落または子divを持つdivを意味します。コンテキストメニューは実際にはcontainerjumbotron divsの場合にのみ表示されます。 panelwellで動作するはずだが、 panel divを編集/削除するためのcontainerコンテキストメニュー内にdivはネストされていませんでした。 https://github.com/ckeditor/ckeditor-dev/blob/master/plugins/div/plugin.js#L126-L131

は、ブラウザのコンソールを開き、編集者にあなたのHTMLを貼り付けpanel divの内側をクリックし、コンソールに以下のコードを実行してください:

エディタは、最も外側のdivを取得するには、このコードを使用しています。 container divが返されます。

var editor = CKEDITOR.instances.editor1; 
var path = editor.elementPath(editor.getSelection().getStartElement()); editor.elementPath(path.blockLimit).contains( 
function(node) { 
return node.is('div') && !node.isReadOnly(); 
}); 

要約すると、これはこのプラグインのしくみです。

関連する問題