ckeditor 相关问题

CKEditor是一个开源富文本编辑器生态系统,支持实时协作。将此标记与[ckeditor4]和[ckeditor5]标记一起使用以指示编辑器版本。

无法使用vue js向ckeditor 5添加自定义图像上传适配器插件

我正在尝试使用 Vue js / Inertia / Vite Js / Laravel 为 ckrditor5 制作自定义图像上传插件, 我阅读了文档并使其与指南完全相同,但我在 co...

回答 1 投票 0

更改 CKEditor youtube 插件设置

我正在使用内联 CKEditor WYIWYG 编辑器并启用 YouTube 插件的网站。我想知道是否可以禁用模式窗口中显示的某些高级设置...

回答 3 投票 0

CKEditor 4.22.1 错误引发有关版本不安全的错误

目前,我在 React 应用程序中使用 CKEditor。为了集成到 React 应用程序中,我使用 ckeditor4-react 版本 4.1.2。它工作得很好,但今天编辑器显示一个错误&q...

回答 1 投票 0

CKEditor更新通知

想要删除“此 CKEditor 4.22.1 版本不安全。请考虑升级到最新版本 4.24.0-lts。”避免出现在我的 Django 管理员的 RichTextUploadingField 中。目前正在使用...

回答 1 投票 0

当编辑器最初隐藏时,CKEditor 自动增长将高度设置为 0

我们正在将 XPage 应用程序升级到版本 12.0.2。平台附带的 CKEditor 版本已更改为 4.18(从 4.5.6.1)。 现在,当 CKEditor 最初隐藏时,例如在一个隐藏的

回答 1 投票 0

CKEditor 5 插件:带有输入、textara 和复选框的弹出窗口

我已经创建了一个 CKEditor 4 插件(在 TYPO3 CMS 中),编辑者可以使用它向 A 标签添加数据属性。 我现在想将此插件迁移到版本 5,看起来几乎

回答 1 投票 0

CKEditor/ CKFinder 与 CakePHP 2.0

我正在尝试将图像和文件上传添加到我的 CKEditor 实例(在 CakePHP 应用程序中)。 CKEditor 一直工作正常,但我无法让 CKFinder 部分工作。我可以获得“浏览服务器”但...

回答 4 投票 0

如何从 CKEditor-->uploads()-->_initRequest() 传递 <div> 元素(以获取其 id)?

我在视图中有 2 个 CKEditor 字段 ()。 @Html.Raw(@Model.Description_1) @Html.Raw(@Model.Description... 我在视图中有 2 个 CKEditor 字段 ()。 <div id="editor_1"> @Html.Raw(@Model.Description_1) </div> <div id="editor_2"> @Html.Raw(@Model.Description_2) </div> 有一段代码将上传的图像传输到控制器: <script> class MyUploadAdapter { upload() { return this.loader.file .then( file => new Promise( ( resolve, reject ) => { this._initRequest(); this._initListeners( resolve, reject, file ); this._sendRequest( file ); } ) ); } _initRequest() { const xhr = this.xhr = new XMLHttpRequest(); } } </script> 如何在 _initRequest() 中传递元素的链接并了解用户将图像上传到哪个字段(我需要获取字段 id)?我试图在接收上传图像的控制器(在 Request 类中)中找出答案,但我做不到。 foreach(Request.Form.Files 中的 IFormFile 照片) 谢谢! 您可以创建自定义上传适配器,将文件作为请求的一部分发送到后端。创建适配器实例时,可以通过editor.sourceElement.getAttribute('id')获取当前元素的id。 然后,新建一个XMLHttpRequest,并将元素id添加到请求头中,最后通过HTTP请求头发送到后端。 后端通过一个方法从请求头中获取对应的id。 以下是您可以用作参考的示例: @model Mymodel <div class="tab-panels"> <div id="editor_1"></div> @Html.Raw(Model?.Description_1) <div id="editor_2"></div> @Html.Raw(Model?.Description_2) </div> <script src=https://cdn.ckeditor.com/ckeditor5/41.0.0/classic/ckeditor.js></script> <script> class MyUploadAdapter { constructor(loader, fieldId) { this.loader = loader; this.url = '/Upload/DocUploadImage'; this.fieldId = fieldId; } // Starts the upload process. upload() { return this.loader.file .then(file => new Promise((resolve, reject) => { this._initRequest(); this._initListeners(resolve, reject, file); this._sendRequest(file); })); } // Aborts the upload process. abort() { if (this.xhr) { this.xhr.abort(); } } _initRequest() { const xhr = this.xhr = new XMLHttpRequest(); xhr.open('POST', this.url, true); xhr.setRequestHeader('X-FieldId', this.fieldId); xhr.responseType = 'json'; } _initListeners(resolve, reject, file) { const xhr = this.xhr; const loader = this.loader; const genericErrorText = `Couldn't upload file: ${file.name}.`; xhr.addEventListener('error', () => reject(genericErrorText)); xhr.addEventListener('abort', () => reject()); xhr.addEventListener('load', () => { const response = xhr.response; if (!response || response.error) { return reject(response && response.error ? response.error.message : genericErrorText); } resolve({ default: response.url }); }); if (xhr.upload) { xhr.upload.addEventListener('progress', evt => { if (evt.lengthComputable) { loader.uploadTotal = evt.total; loader.uploaded = evt.loaded; } }); } } // Prepares the data and sends the request. _sendRequest(file) { const data = new FormData(); data.append('upload', file); this.xhr.send(data); } } function MyCustomUploadAdapterPlugin(editor) { editor.plugins.get('FileRepository').createUploadAdapter = (loader) => { const fieldId = editor.sourceElement.getAttribute('id'); return new MyUploadAdapter(loader, fieldId); }; } ClassicEditor.create(document.querySelector('#editor_1'), { extraPlugins: [MyCustomUploadAdapterPlugin] }) .catch(error => { console.error(error); }); ClassicEditor.create(document.querySelector('#editor_2'), { extraPlugins: [MyCustomUploadAdapterPlugin] }) .catch(error => { console.error(error); }); </script> 接受方式: public async Task<JsonResult> DocUploadImage() { var fieldId = HttpContext.Request.Headers["X-FieldId"].ToString(); return Json("OK"); } 当我发送图像时: 我可以在请求头中获取对应的元素id:

回答 1 投票 0

在 WYSIWYG 编辑器...CKEditor 或其他方式中向 <a> 标签添加“名称”属性

我有一个构建电子邮件的应用程序,其中一部分包括一些您可能在网络中看不到的非标准内容,例如向链接添加“名称”属性。我需要一个所见即所得,我 99% 都满意...

回答 2 投票 0

使用 django-ckeditor 添加外部插件

我正在尝试使用 django-ckeditor 为 CKEditor 4 安装此详细信息插件。我找不到使该按钮为我显示的语法。 我已将插件文件夹放在 /static/js/lib/ckeditor-plu...

回答 1 投票 0

CKEditor5 获取纯文本

我知道如何使用 CKEditor5 API 获取数据,正如文档和另一篇 SO 帖子中提到的那样。 但是,我怎样才能得到纯文本呢?我尝试跟随但它什么也没返回。 警报($(

回答 3 投票 0

使用 CKEditor,如何替换图像上传适配器错误“警报”并使用自定义处理程序来通知用户

根据CK Editor的说法,自定义上传适配器的实现仅支持两种生命周期方法:上传和中止。似乎没有任何方法可以拦截编辑器来自定义句柄

回答 2 投票 0

如何使用 FOSCKEditorBundle 处理插件的自定义默认值?

我想覆盖“table”插件的默认值,例如cellspadding(txtCellSpace)。 使用: 交响乐:6.4 Friendsofsymfony/ckeditor-bundle: v2.4 (CKeditor v4 in...

回答 1 投票 0

ckeditor5 mathtype分数问题

我们使用 ckediter 5 和 wiris mathtype 模块,在输入小数值时出现问题。就像 32/3 转换为 3⅔ 一样。 ck 编辑器角度版本:“@ckeditor/ckeditor5-angular”:&...

回答 1 投票 0

ckeditor 问题:需要单击两次提交按钮才能提交表单

这是我的验证代码,当ckeditor为空时会出现错误,但是当填充ckeditor文本区域时必须单击两次提交按钮才能提交表单。 $('#form').validate({ 忽略:[...

回答 1 投票 0

如何将输入的文字转换为表情符号

我正在使用角度技术开发社交网络应用程序。我使用 CKEditor 免费版本来实现一些核心应用程序功能,如下所示。 创建新帖子

回答 2 投票 0

如何捕获 CKEditor 4 中的对话框选项卡更改?

我一整天都在寻找这个,但对话框选项卡更改似乎没有触发任何事件。当显示/更改/单击对话框选项卡时,有什么方法可以触发某些功能?我的意思是

回答 3 投票 0

CKEditor 链接输入在模式下不起作用

我有一个项目,其中使用带有表单和 ckeditor 的模式,但链接输入不起作用。 这是重现此问题的小提琴: http://jsfiddle.net/8t882a2s/3/ 和代码...

回答 5 投票 0

CKEditor5:以只读模式启用源代码视图

我正在尝试创建一个只读但允许源代码查看的CKEditor。 当我使用 CKEditor 的只读模式时,源编辑插件被禁用。 我正在寻找一种简单的方法来做到这一点,我确实......

回答 1 投票 0

CK Editor 内联元素拖放问题

我创建了一个自定义插件,如图所示。我可以添加带有“占位符”类的对象。 循环-ANS(Q2)。 内联小部件 c...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.