有办法让多个内联配置的CKEditor具有单个工具栏DOM元素。可以通过以下步骤实现:
这样,多个内联配置的CKEditor实例就会共享同一个工具栏DOM元素,从而实现了多个编辑器共享单个工具栏的效果。
以下是一个示例代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Multiple Inline CKEditor with Single Toolbar</title>
<script src="ckeditor/ckeditor.js"></script>
<style>
#ckeditor-container {
display: flex;
flex-wrap: wrap;
}
#ckeditor-toolbar {
position: fixed;
top: 10px;
left: 10px;
z-index: 9999;
background-color: #f5f5f5;
padding: 5px;
border: 1px solid #ccc;
}
</style>
</head>
<body>
<div id="ckeditor-toolbar">
<!-- 在这里添加工具栏按钮 -->
<button onclick="executeCommand('bold')">加粗</button>
<button onclick="executeCommand('italic')">斜体</button>
</div>
<div id="ckeditor-container"></div>
<script>
// 初始化CKEditor实例
function initCKEditor(elementId) {
CKEDITOR.inline(elementId, {
toolbar: 'ckeditor-toolbar' // 使用单独的工具栏DOM元素
});
}
// 执行CKEditor命令
function executeCommand(command) {
var instances = CKEDITOR.instances;
for (var key in instances) {
if (instances.hasOwnProperty(key)) {
instances[key].execCommand(command);
}
}
}
// 创建多个CKEditor实例并附加到父容器元素
var container = document.getElementById('ckeditor-container');
for (var i = 1; i <= 3; i++) {
var editorId = 'ckeditor-' + i;
var editorElement = document.createElement('div');
editorElement.id = editorId;
editorElement.innerHTML = 'CKEditor ' + i;
container.appendChild(editorElement);
initCKEditor(editorId);
}
</script>
</body>
</html>
在上述示例中,我们创建了一个父容器元素"ckeditor-container",并在其中动态创建了三个CKEditor实例。同时,我们创建了一个单独的工具栏DOM元素"ckeditor-toolbar",并将所有CKEditor实例的工具栏配置为使用这个工具栏DOM元素。通过CSS样式表,我们将工具栏定位到页面的合适位置。
请注意,上述示例中的CKEditor文件路径和工具栏按钮的执行命令是简化的示例,实际使用时需要根据具体需求进行适当修改。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云