CKEditor 5是一组随时可用的富文本编辑器,使用强大的框架创建,使您能够创建任何类型的文本编辑解决方案,并在其中包含实时协作编辑。将此标记用于任何与CKEditor 5相关的问题。有关CKEditor 4的问题,请使用“ckeditor4.x”标签。
Angular esbuild ckeditor。没有为“.svg”配置加载器
我使用ckEditor。如果我导入 ckEditor 插件,我会收到此错误 没有为“.svg”文件配置加载程序:node_modules/@ckeditor/ckeditor5-core/theme/icons/table.svg 角度版本:17....
CKEditor 5 插件:带有输入、textara 和复选框的弹出窗口
我已经创建了一个 CKEditor 4 插件(在 TYPO3 CMS 中),编辑者可以使用它向 A 标签添加数据属性。 我现在想将此插件迁移到版本 5,看起来几乎
我的 ejs 模板中有以下内容: // 经典编辑器 </desc> <question vote="0"> <p>我的 ejs 模板中有以下内容:</p> <pre><code><script src="https://cdn.ckeditor.com/ckeditor5/41.0.0/classic/ckeditor.js"></script> <script> // Classic Editor ClassicEditor .create( document.querySelector( '#editor' ), { ckfinder: { uploadUrl: '/ckfinder/core/connector/php/connector.php?command=QuickUpload&type=Files&responseType=json' } } ) .catch( error => { console.error( error ); } ); </script> </code></pre> <p>HTML 元素如下所示:</p> <pre><code><div class="mb-3"> <label for="content" class="form-label">Content</label> <textarea class="form-control" id="editor" rows="4" cols="50" name="content" value="<% if(editMode) { %><%= event.content %><%}%>"></textarea> </div> </code></pre> <p>当我查看表单时,我可以看到并使用 CKEditor。</p> <p>但是,当我在编辑模式下加载表单时,CKEditor 也会在前端渲染 HTML 标签。</p> <p>数据库中保存的内容如下:</p> <p><a href="https://i.stack.imgur.com/wJ79H.png" target="_blank"><img src="https://cdn.txt58.com/i/AWkuc3RhY2suaW1ndXIuY29tL3dKNzlILnBuZw==" alt=""/></a></p> <p>见附图</p> <p>如何在不显示HTML的情况下正确显示内容? 例如,如果文本为粗体,则它应该以粗体显示,而不是强标签本身。</p> <p><a href="https://i.stack.imgur.com/OuelR.png" target="_blank"><img src="https://cdn.txt58.com/i/AWkuc3RhY2suaW1ndXIuY29tL091ZWxSLnBuZw==" alt=""/></a></p> </question> <answer tick="false" vote="0"> <p>这一切都是 HTML 问题。</p> <p>文本区域定义不正确。相反,它应该看起来像这样:</p> <pre><code><textarea class="form-control" id="editor" rows="4" cols="50" name="content"> <% if(editMode) { %><%- event.content %><%}%> </textarea> </code></pre> </answer> </body></html>
如何从 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:
错误:找不到模块“@ckeditor/ckeditor5-build-classic”角度9的声明文件
我想在 Angular 9 中使用 ckeditor,我按照 https://ckeditor.com/docs/ckeditor5/latest/builds/guides/integration/frameworks/angular.html 中的说明进行操作 但它在我导入“@
我正在使用ckeditor5,我试图将编辑器默认设置为粗体和居中。 当用户开始书写时,文本将加粗并居中。 我看到有人问类似的问题,但没有一个...
我正在使用ckeditor5,我试图将编辑器默认设置为粗体和居中。 当用户开始书写时,文本将加粗并居中。 我看到有人问类似的问题,但没有一个...
我知道如何使用 CKEditor5 API 获取数据,正如文档和另一篇 SO 帖子中提到的那样。 但是,我怎样才能得到纯文本呢?我尝试跟随但它什么也没返回。 警报($(
使用 CKEditor,如何替换图像上传适配器错误“警报”并使用自定义处理程序来通知用户
根据CK Editor的说法,自定义上传适配器的实现仅支持两种生命周期方法:上传和中止。似乎没有任何方法可以拦截编辑器来自定义句柄
如何防止CKEditor删除<html>、<head>和<body>标签
我的问题与另一篇文章中描述的问题基本相同,只是它涉及 CKeditor 4 而我实际上正在处理该模块的版本 5。 简而言之:如果我尝试...
我们使用 ckediter 5 和 wiris mathtype 模块,在输入小数值时出现问题。就像 32/3 转换为 3⅔ 一样。 ck 编辑器角度版本:“@ckeditor/ckeditor5-angular”:&...
在 CKEditor5 实例上的 chrome 扩展中,如何在插入内容之前删除插入符号位置的最后 x 个字符
我正在开发一个 chrome 扩展,它用扩展文本替换缩写。我正在处理 CKEditor5 的一个具体案例。 由于CKEditor实例仅在后台执行时可用...
当我们在 ckeditor 中添加更多单词并且向下滚动时,ckeditor 工具不会显示并且不是静态的。 即使注释很长,ckeditor 工具栏也应该位于顶部。这样当我们
我正在尝试创建一个只读但允许源代码查看的CKEditor。 当我使用 CKEditor 的只读模式时,源编辑插件被禁用。 我正在寻找一种简单的方法来做到这一点,我确实......
Django:WindowsPath 类型的对象不可 JSON 序列化
我正在尝试将 ckeditor_uploader 添加到我的项目中,并在 django 默认管理站点中添加帖子。 我收到以下错误: 模板渲染期间出错 env\lib\sitepackages\djang
我创建了一个自定义插件,如图所示。我可以添加带有“占位符”类的对象。 循环-ANS(Q2)。 内联小部件 c...
我正在创建一个稍微复杂的“简单框”插件(我已将其重命名为“标注”),用户可以在其中“对齐”左浮动、全宽或浮动的框...
Ckeditor 5:大图像副本应在转换为 Base64 之前调整图像大小
我正在使用ckeditor5库,当我复制图像时,它会使用Base64UploadAdapter插件将其转换为base64。如果图像很大,我想以编程方式将其大小调整为预定义...
CKEditor 在 laravel 中的 p 标签之前和之后添加额外的 p 标签
我正在使用 CKEditor 作为文本区域。我已将编辑器类添加到我的文本区域。我有一个公开的 ckeditor 文件夹。我在该文件夹中有两个文件[ckeditor.js 和 script.js]。我已经添加了
我目前正在致力于将 CKEditor 与 React 应用程序中的自定义图像浏览器集成。尽管我做出了努力,但单击“插入图像...”时,默认图像浏览器仍会继续打开