如何将自定义文件浏览器/上传器与 CKEditor 集成?

2023-12-08

官方文档不太清楚 - 将自定义文件浏览器/上传器与 CKEditor 集成的正确方法是什么? (v3 - 不是 FCKEditor)


首先在实例化 CKEditor 时注册您的自定义浏览器/上传器。您可以为图像浏览器和一般文件浏览器指定不同的 URL。

<script type="text/javascript">
CKEDITOR.replace('content', {
    filebrowserBrowseUrl : '/browser/browse/type/all',
    filebrowserUploadUrl : '/browser/upload/type/all',
    filebrowserImageBrowseUrl : '/browser/browse/type/image',
filebrowserImageUploadUrl : '/browser/upload/type/image',
    filebrowserWindowWidth  : 800,
    filebrowserWindowHeight : 500
});
</script>

您的自定义代码将收到一个名为 CKEditorFuncNum 的 GET 参数。保存它 - 这就是您的回调函数。假设你把它放入$callback.

当有人选择一个文件时,运行此 JavaScript 来通知 CKEditor 选择了哪个文件:

window.opener.CKEDITOR.tools.callFunction(<?php echo $callback; ?>,url)

其中“url”是他们选择的文件的 URL。可选的第三个参数可以是您想要在标准警报对话框中显示的文本,例如“非法文件”或其他内容。如果第三个参数是错误消息,则将 url 设置为空字符串。

CKEditor 的“上传”选项卡将在“上传”字段中提交一个文件 - 在 PHP 中,该文件将转到 $_FILES['upload']。 CKEditor 希望你的服务器输出的是一个完整的 JavaScript 块:

$output = '<html><body><script type="text/javascript">window.parent.CKEDITOR.tools.callFunction('.$callback.', "'.$url.'","'.$msg.'");</script></body></html>';
echo $output;

同样,您需要为其提供回调参数、文件的 URL 以及可选的消息。如果消息是空字符串,则不会显示任何内容;如果消息有错误,则 url 应为空字符串。

官方 CKEditor 文档在这方面并不完整,但如果您遵循上述内容,它会像冠军一样工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将自定义文件浏览器/上传器与 CKEditor 集成? 的相关文章

  • 到底如何将 ckeditor 与 Paperclip 集成,以便它可以上传图像文件?

    你怎么获得http github com galetahub rails ckeditor http github com galetahub rails ckeditor工作 以便您可以上传图像文件 我认为我不会使用 s3 存储 任何帮助
  • 如何修复错误无法在 Angular 2 CLI ckeditor 中找到名称“对象”

    我已经使用 cli 安装了 ng2 ckeditor npm install ng2 ckeditor save 然后将 CKEditor javascript 文件包含在我的索引文件中 然后在模块文件中导入模块 import CKEdit
  • 如何安装 django-ckeditor?

    Stack Overflow 上有两个问题这位编辑 http pypi python org pypi django ckeditor 却没有人回答 所以我问如何将此 Django 包安装到我的项目中 我已经关注了这些步骤 http pyp
  • CKEDITOR,在文本编辑器 onLoad 上自动聚焦

    有人知道如何在页面加载时自动聚焦于 CKEDITOR 文本区域吗 目前 用户必须先单击文本区域才能开始输入 像 Google 一样 我希望加载页面 并且用户可以立即开始输入 而无需单击文本区域 这是启动 CKEDITOR 的当前代码
  • 如何将 onClick 侦听器添加到 CKEditor 中的 fileButton?

    我正在使用图像上传器插件 并且有一个如下所示的按钮定义 type fileButton id uploadButton filebrowser info txtUrl label editor lang image btnUpload fo
  • 在 Angular 中向 ckeditor 添加简单的上传适配器

    我确实通过安装在我的角度项目中启动了经典的ckeditor npm install save ckeditor ckeditor5 angular npm install save ckeditor ckeditor5 build clas
  • 如何使用 jQuery 销毁内联 CKEditor

    假设这是我的代码 div class editor div This is working for me editor click function this ckeditor This is the problem editor on f
  • 外部调用UI按钮

    回答 结果可以在这里看到 http apitecture com dev cked index 2 html http apitecture com dev cked index 2 html 工作代码摘录 a color on click
  • Yii ,从 $_FILES 保存图像,但不使用模型

    这可能吗 这是有模型的 CUploadedFile getInstance model newsimage model gt image gt saveAs image path 但我不想创建模型只是为了保存我的图像 我实际上需要这个的目的
  • VueJS CKeditor5上传图片

    在 Vuejs 中使用 CKeditor5 上传图像时遇到问题 第一次尝试过简单上传适配器 https ckeditor com docs ckeditor5 latest features image upload simple uplo
  • 允许在 ckeditor 中嵌入 oembed 标签

    我想将 oembed 标签放入 TYPO3 的 ckeditor RTE 中 这样我想将像 Instagram Facebook 或 Twitter 这样的社交帖子放入一些新闻文章中 在一些文本的中间 为此 我激活了 ckeditor 的嵌
  • CKEditor 安全最佳实践

    我在用http ckeditor com http ckeditor com 在我建立的一个小型 PHP MySQL 论坛中 我的问题 将用户创建的 HTML 像这样保存在数据库中然后在我的应用程序中重新显示它是否安全 我应该采取哪些预防措
  • 如何在CKEditor激活时在HTML5文本区域中显示占位符属性?

    我在 HTML5 网站中有一个文本区域 具有适当的占位符 示例文本 属性 在我通过 CKEditor 添加 RichText 支持之前 它显示得很好 CKEditor GUI 正在重新创建文本区域 并且不显示其中的占位符文本 有没有办法在
  • iframe 中元素的 CKEditor 内联编辑器

    在应用程序中 我在 iframe 中有内容可编辑元素 并且希望将内联 CKEditor 应用于这些元素 它可以工作 除非我滚动 iframe 时 CKEditor 工具栏不会随之滚动 是否有特殊标志或某种方法可以让工具栏随 iframe 内
  • 当 br 位于允许的内容中时,ckeditor 会删除

    当我将 br 添加到 ckeditor 允许的内容并添加 br 标签正在被更改为 br 但是当我添加 br 它正在被删除 为什么当 br 属于允许的内容时它会被删除 有什么建议么 您的帖子中缺少一些内容 不知道为什么 也不知道您想说什么 如
  • CKEditor 4 构建(缩小和丑化)

    在我们的构建过程中 使用 grunt 我们将所有脚本连接 缩小和丑化为一个脚本 也意味着仅一个请求 现在 CKEditor 4 似乎正在使用模块样式加载方法 谁能告诉我如何将 CKEditor 4 包含到包含所有必需源的项目中 这样以后就不
  • ckeditor 4.5 fileUploadRequest 事件未触发

    我有一个 html id 为 id textarea 的文本区域 editor CKEDITOR inline id textarea filebrowserBrowseUrl browse url filebrowserUploadUrl
  • CckEditor - 从 AJAX 加载的模板

    我正在使用 CkEditor 并且想要定义一个自定义模板 该模板使用 AJAX 函数来加载 HTML 字符串 我已经能够定义自定义模板 但如果我对模板对象的 html 属性使用函数 则该函数永远不会执行 是否可以使用 AJAX 和默认模板插
  • 如何判断CKEditor是否已加载?

    如何确定 CKEditor 是否已加载 我查看了API文档 但只能找到loaded事件 我想检查 CKEditor 是否已加载 因为如果我第二次加载它 我的文本区域就会消失 The loaded活动对我不起作用 instanceReady
  • 如何在 Angular JS 应用程序中使用 ckeditor? [复制]

    这个问题在这里已经有答案了 我是 angularJS 新手 我需要在我的应用程序中使用 ckeditor 作为文本区域 在我在 Angular 应用程序上尝试之前 我已经完成了一个 仅 html 网页 我已经生成了我的 ckeditor 包

随机推荐

  • php preg_replace 匹配

    如何将 preg replace 中的匹配项作为可用变量访问 这是我的示例代码
  • 为什么我们不能将数组传递给可以使用 &array[0] 的函数

    void fun int array int main int array 1 2 3 fun array gt 1 error in this line return 0 error cannot convert int 3 to int
  • 导入隐式转换而不使用 SparkSession 实例

    我的 Spark 代码中充满了这样的代码 object Transformations def selectI df DataFrame DataFrame needed to use to generate ColumnName impo
  • 类声明之间的区别

    我看到一些关于这个主题的类似问题 但我想确定一下 所以我问 有什么区别 class MyClass pass and class MyClass pass 另外 这两者之间有区别吗 class MyClass pass class MyCl
  • 什么是递归以及何时应该使用它?

    Locked 这个问题及其答案是locked因为这个问题是题外话 但却具有历史意义 目前不接受新的答案或互动 邮件列表和在线讨论中似乎经常出现的主题之一是获得计算机科学学位的优点 或缺乏优点 对于消极方来说 似乎一次又一次出现的一个论点是
  • .net thread.sleep 不准确

    我快疯了 我通过 gsm 发送音频 根据语音规范 我必须发送语音数据包 然后等待 20 毫秒才能获得正常语音 我使用system threading thread sleep 20 但是 我注意到声音很慢 但是当我运行另一个不同的应用程序时
  • SecurityError:操作不安全 - window.history.pushState()

    我在 Firefox 控制台中收到此错误 SecurityError The operation is insecure罪魁祸首是 HTML5 功能 window history pushState 当我尝试使用 AJAX 加载某些内容时
  • pandas 三路连接列上的多个数据框

    我有 3 个 CSV 文件 每个数据框中的第一列都是人名 字符串 而每个数据框中的所有其他列都是该人的属性 如何将所有三个 CSV 文档 连接 在一起以创建一个 CSV 其中每一行都具有人员字符串名称的每个唯一值的所有属性 The join
  • 仅当用户登录时从 Angular 发送 Post-requests 时,Django 403 被禁止

    我已经创建了一个后端 Django 应用程序 目前正在连接一个 Angular 前端 该前端使用 Django Rest 框架从 API 设置中请求数据 并且遇到了我登录的用户 在后端 的问题 他们在前端登录并不重要 对 API 的所有后期
  • 如何在 GLSL ES 中编写 const 数组

    我正在尝试为 iPhone 上的 OpenGL ES 应用程序编写一个简单的顶点着色器 但我的数组构造函数给我带来了麻烦 attribute vec4 normal attribute vec4 position void main voi
  • 删除 Cookie 问题

    当用户登录 www example com 时 我有一个 cookie 保存令牌 然后根据他们使用的设备将其重定向到 example com desktop 或 example com mobile 当他们注销桌面应用程序时 我将 cook
  • 正则表达式:删除第一个单词到下一行之后的所有内容

    使用什么正则表达式删除每行中除第一个单词之外的所有内容 Data JAMES 3 318 3 318 1 JOHN 3 271 6 589 2 ROBERT 3 143 9 732 3 我正在尝试在 Notepad 中执行此操作作为替代 您
  • 检查方法的参数是否由用户设置

    有没有办法检查方法的参数是由方法本身设置的默认值还是由调用该方法的用户设置的 例如 这是我想要在我的方法中执行的操作 def json prop key value nil json data if json data nil return
  • UTF-8 兼容截断函数

    有人遇到过复杂的拉丁字符 例如越南语 的这个问题吗 function truncate str length append strLength mb strlen str if strLength lt length return str
  • 可以使用地图 v2 创建透明信息窗口吗?

    大家好 有个问题 我这样应用infowindows的背景 android background 55000000 但它后面似乎总是有一个白色的背景 有可能去掉它吗 谢谢你 实现您自己的 InfoWindowAdapter 以定制设计 inf
  • NServicebus - 一个端点多个处理程序线程

    我有两个端点 端点1 消息处理程序 X 消息处理程序 Y 消息处理程序 Z 网络端点 此时没有处理程序 只是向总线发送命令 发生以下情况 Web gt 发送 端点1 收到消息 端点 1 处理 MessageX 并在 Handler Bus
  • 如何从交易队列中删除非常旧的、已失效的应用内购买

    我的公司最近将 iOS 应用程序的开发外包给第三方开发商 该应用程序包含大量应用内购买 开发人员向我们发送了各种版本 其中许多是 pre alpha 版本并且包含错 误 因此 我的手机 iPhone 4S 似乎有很多无效的应用内购买尝试 导
  • Unity 交叉口蒙版

    有没有办法检测具有一定数量顶点的物体是否撞击平面 如果是这样 我想将其以二进制 黑 白 绘制到平面上或用它创建纹理 而且我也不关心这是否只能通过光线投射或一些棘手的物理操作 着色器 等来创建 我只是想知道什么数学算法可以创建这个 Here
  • “Ionic start projectName”不适用于 Ionic Framework

    我在用Ubuntu 14 04 我遵循了一些关于如何在 Ubuntu 14 04 上安装 Ionic Framework 的教程 包括官方指南 基本上只是执行以下操作 sudo npm install g ionic sudo npm in
  • 如何将自定义文件浏览器/上传器与 CKEditor 集成?

    官方文档不太清楚 将自定义文件浏览器 上传器与 CKEditor 集成的正确方法是什么 v3 不是 FCKEditor 首先在实例化 CKEditor 时注册您的自定义浏览器 上传器 您可以为图像浏览器和一般文件浏览器指定不同的 URL