javascript - 在上下文菜单中编辑 Div 未抓取正确的 Div(CKEditor v. 4.6.2)

标签 javascript html twitter-bootstrap ckeditor

我遇到了一个问题,当我右键单击并从上下文菜单中单击带有以下 HTML 对象的“编辑 Div”时,CKEditor 没有抓取正确的 div。例如,当我右键单击“well”div 时,我在 Edit Div 模式窗口中返回了“jumbotron”。当我右键单击并编辑“面板”div 时,我也得到了“容器”div。这是一个已知的问题?有什么解决方法吗?

<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>

最佳答案

我认为问题中有一个小错误,因为同时单击 wellpanel div 将返回 container div。

原因是您所指的插件 ( Div Container Manager ) 适用于 div 容器,而不适用于普通 div。我所说的 div 容器是指内部有子段落或子 div 的 div。上下文菜单实际上仅针对 containerjumbotron div 显示。您可能认为它应该与 panelwell 一起使用,但是如果例如panel div 未嵌套在 container 中,不会显示用于编辑/删除 div 的上下文菜单。

编辑器使用这段代码获取最外层的div:https://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();
});

总而言之 - 这就是这个插件的工作原理。

关于javascript - 在上下文菜单中编辑 Div 未抓取正确的 Div(CKEditor v. 4.6.2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45701736/

相关文章:

javascript - JQuery:如何删除除第一个包含子字符串作为 'id' 标记之外的所有 div 元素?

javascript - error.code 139 在 node.js 中运行 exec 时

javascript - JSON 列表 ASP.net MVC

android - 无法使导航按钮在 lg 和 md View 上消失,无法下拉菜单按钮

javascript - 拆分 HTML 表格以适合视口(viewport)宽度

javascript - 在 Bootstrap 中动态更改下拉宽度

javascript - 如何使用 javascript 将必填字段设置为 false

javascript - jquery .ajax .done 函数仅在警报时完成

html - 两个单独的网格列中的表单元素

html - 在 Bootstrap 中使用图像作为下拉菜单