2017-08-15 23 views
2

我遇到了一個問題,CKEditor沒有抓取正確的div,當我右鍵單擊並從上下文菜單中單擊'Edit Div'下面的HTML對象。例如,當我右鍵單擊「井」 div,我得到「超大屏幕」編輯股利模態窗口返回。我也得到了「容器」 div當我點擊右鍵並編輯「面板」 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

我相信這是在問題的點擊都wellpanel的div將返回container DIV稍有不慎。

原因是你所指的插件(Div Container Manager),適用於div容器,不適用於普通div div。通過div容器,我的意思是一個div內有子段落或子div。上下文菜單其實是在被僅出於containerjumbotron的div。您可能已經意識到它應該與panelwell一起使用,但是如果例如panel div未嵌套在container上下文菜單中,因此不會顯示編輯/刪除div。

編輯器使用此代碼來獲得最DIVhttps://github.com/ckeditor/ckeditor-dev/blob/master/plugins/div/plugin.js#L126-L131

請你的HTML粘貼到編輯器,打開瀏覽器控制檯,點擊panel 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(); 
}); 

總結 - 這是這個插件的工作原理。