javascript - 当我尝试构建一个简单的小部件时,CKEditor 卡住了

标签 javascript ckeditor

我正在按照此处的教程进行操作,使用版本 4.7.3:

https://docs.ckeditor.com/ckeditor4/docs/#!/guide/widget_sdk_tutorial_1

起初我使用的是标准包,我手动安装了小部件插件,同时添加了它的依赖项,但没有添加依赖项的依赖项,因为我假设它们已经包含在 CKEditor 中。

当它卡住时,我开始怀疑我是否搞砸了下载插件,所以我下载了一个自定义构建,从标准包开始,包括小部件插件。据说这应该为我处理依赖关系。

所以我开始按照教程进行操作。

这是我的 HTML:

<html>
<head></head>
<body>
    <h1>Headline</h1>
    <p id="paragraph" contentEditable>This is the body of the article.</p>
    <script src="./ckeditor/ckeditor.js"></script>
    <script src="./index.js"></script>
</body>

我的index.js

CKEDITOR.disableAutoInline = true;

CKEDITOR.inline("paragraph",{
    extraPlugins:'simplebox'
});

这里是 ckeditor/plugins/simplebox/plugin.js 的插件代码:

CKEDITOR.plugins.add( 'simplebox', {
    requires: 'widget',

    icons: 'simplebox',

    init: function( editor ) {
        editor.widgets.add( 'simplebox', {
            button: 'Create a simple box',
            template:"<h1>What's going on</h1>"
        } );
    }
} );

当我激活编辑器时,该图标成功出现在工具栏中,但是当我按下它时,浏览器就会卡住。我的错误在哪里?

这是我的作品的链接:https://www.dropbox.com/s/thw4yxt23jlzq49/ckeditor-widget.zip?dl=0

最佳答案

您正处于本教程的中间部分,因此您尝试在编辑器内实现的解决方案并不完整。应该至少添加 upcast 方法来定义元素成为小部件的条件。这似乎是您的示例运行不佳的主要原因。 您可以在此处查看整个教程的解决方式:https://github.com/ckeditor/ckeditor-docs-samples/blob/master/tutorial-simplebox-1/simplebox/plugin.js

从文档中检查小部件描述可能会有所帮助:https://docs.ckeditor.com/ckeditor4/docs/#!/api/CKEDITOR.plugins.widget 。通常在方法文档中您可以找到一些简单的用法示例。

关于javascript - 当我尝试构建一个简单的小部件时,CKEditor 卡住了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46589062/

相关文章:

JavaScript 递归搜索

ckeditor - 是否可以将 CKFinder 配置为仅文件浏览器而没有任何上传功能?

ckeditor - 如何在CKEditor 4中设置默认字体和字体大小

ckeditor - 来自 FAL 的 Typo3 CKEditor 图像

javascript - 获取CKEditor中选择的坐标

Javascript - window.getComputedStyle 返回 "auto"作为元素顶部和左侧属性

javascript - 使用 Javascript 获取上个月的最后一个日期

javascript - 我的网站未显示 Chrome 电子邮件字段自动完成选项

javascript - 如何将数组元素追加到 DOM 中?

css - 使背景与最高的子元素一样高