CKEditor - 阻止用户粘贴图像

2024-06-26

我想为我的用户提供一个有限的编辑器,使用出色的 CKEditor。

我试图阻止人们添加图像,因此我阻止了“源”视图并禁用了“粘贴”按钮(仅保留“粘贴为文本”按钮)。

但是,仍然可以粘贴图像(从网页复制)。 有没有办法防止这种情况发生?

Thanks.


我知道已经有一段时间了,但如果其他人遇到同样的问题。

你应该使用此处描述的插件 http://www.isummation.com/blog/block-drag-drop-image-or-direct-image-paste-into-ckeditor-using-firefox/检查所有图像,如果用户尝试插入图像,则会警告他不允许“图像”。

请注意,该插件无法下载,因此我们可能必须创建自己的插件。它非常简单。我们只需将他的代码复制并粘贴到plugin.js file.

CKEDITOR.plugins.add( 'blockimagepaste',
{
    init : function( editor )
    {

    function replaceImgText(html) {
            var ret = html.replace( /<img[^>]*src="data:image\/(bmp|dds|gif|jpg|jpeg|png|psd|pspimage|tga|thm|tif|tiff|yuv|ai|eps|ps|svg);base64,.*?"[^>]*>/gi, function( img ){
                        alert("Direct image paste is not allowed.");
                        return '';

                     });
            return ret;
        }

        function chkImg() {
            // don't execute code if the editor is readOnly
            if (editor.readOnly)
                return;

            setTimeout( function() {
                editor.document.$.body.innerHTML = replaceImgText(editor.document.$.body.innerHTML);
            },100);
        }

        editor.on( 'contentDom', function() {
            // For Firefox
            editor.document.on('drop', chkImg);
            // For IE
            editor.document.getBody().on('drop', chkImg);
        });

        editor.on( 'paste', function(e) {

        var html = e.data.dataValue;
            if (!html)
                return;

        e.data.dataValue = replaceImgText(html);
        });

    } //Init
} );

另外一个选择在这里解释 http://drupalwise.wordpress.com/2013/06/12/how-to-prevent-pasting-images-in-ckeditor-through-firefox/(我相信这只适用于粘贴事件,当拖动图像时不会执行任何操作!)

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

CKEditor - 阻止用户粘贴图像 的相关文章

  • React 卸载并重新挂载子组件

    我有一个 npm 导入的组件 CKEditor 它只关心其父组件在安装时的状态 也就是说 无论父组件的状态发生什么变化 如果父组件已经挂载 CKEditor 都不会反映这些变化 这对我来说是一个问题 因为当父组件更改其语言属性时 我需要 C
  • 在 Angular 中向 ckeditor 添加简单的上传适配器

    我确实通过安装在我的角度项目中启动了经典的ckeditor npm install save ckeditor ckeditor5 angular npm install save ckeditor ckeditor5 build clas
  • 如何配置 ckeditor 不将内容换行到

    块中?

    我在用ckeditor http ckeditor com 在我的网站上 让用户更容易输入 HTML 但是 我从 ckeditor 返回的数据包含在 p p 块 这是我不想要的 是否有一些配置设置强制编辑器不将文本换行 将以下内容添加到您的
  • 如何在CkEditor中右键单击添加附加菜单项?

    在CKeditor中 当我们右键单击图像时 会出现四个菜单项 cut copy paste image properties 我想再添加两个菜单项 test1 test2 gt subtest2 subtest3 test1 将是一个菜单
  • CKEditor 插件按钮在源模式下禁用

    我试图在 CKEditor 中添加我自己的工具栏按钮 在 vBulletin 内 以下是我的代码 CKEDITOR plugins add app init function editor editor addCommand AppWidg
  • 如何在 CKEditor 5 中禁用放置事件

    我们正在尝试将 CKEditor 5 实现到我们的应用程序中 但我们在文档方面遇到了一些困难 我们想要禁用将拖放事件放入编辑区域或以某种方式控制它 有这样的活动吗 我们正在努力editor model document on clipboa
  • ng2-ckeditor 404(未找到)

    我使用 cmd npm install ng2 ckeditor 添加了 ng2 CKEDitor 安装得很好 有一个例子https www npmjs com package ng2 ckeditor https www npmjs co
  • CKEditor editor1.insertHtml() 不适合我

    我正在使用 CKEditor 来编辑帖子的评论 我也在使用 JQuery 因为每个帖子可能有多个评论 所以我试图将其全部基于班级 下面的函数应该隐藏注释的显示区域 将显示区域中的文本插入到编辑器中 最后显示编辑器 function fnCo
  • 如何删除ckeditor中的表单工具并调整大小

    我在我的项目中使用 CKEditor 我的要求是删除 FORM TOOLS 并设置 CKEditor 的大小ADJUSTABLE 到目前为止 我已成功在网页中显示编辑器 我已经搜索过谷歌 但不幸的是我什么也没得到 请帮助我解决这个问题 试试
  • 使用 JavaScript 打开和关闭 CKEditor 4 内联编辑

    我需要能够使用按钮打开 关闭内联编辑 请参阅此处的内联编辑示例 http nightly v4 ckeditor com 3559 samples inlineall html http nightly v4 ckeditor com 35
  • CKEditor 如何在取消帖子时删除服务器中的图像文件

    我正在使用nodeJS 后端 react 前端 mongoDB 我安装了 CKEditor5 以便在船上发布许多图像 它可以完美地在我的服务器文件夹上上传图像CKfinder But 如果有人停止发布上传的图像 无用的图像将保留在我的服务器
  • 您没有浏览服务器的权限?

    我将 kcfinder 与 ckeditor 一起使用 改变的同时disabled to false在 kcfinder 的配置文件中没有问题 但是用以下命令覆盖它 SESSION KCFINDER array disabled gt fa
  • 具有 DOM 操作的自定义插件 CKEditor 4.x

    我正在为 CKEditor 4 7 开发一个自定义插件 它做了一个简单的思考 以防用户选择一些东西 它会将其放入具有特定类的 div 中 否则它将放入一个具有相同类的 div 其中包含文本 例如 在此处添加内容 我尝试根据 CKEditor
  • 重置表单重置按钮上的 ckeditor 值

    我的表单上有一个表单重置按钮 a href class btn Reset a 这将重置表单上除 ckeditor 之外的所有控件 并且我希望能够重置表单上 ckeditor 的值 ckeditor 的关联文本区域被重置 那么我该如何将 c
  • CKEditor 5 保存选定的文本并在恢复内容后将其再次设置为选定

    我一直在使用 CKEditor 5 var mySelection editor getSelection 例如 获取选定的文本并能够将其保存到数据库中 我想知道是否有一种更简单的方法将所选文本保存到数据库 然后在恢复文本后将其设置为在编辑
  • 如何在 Bootstrap Modal 中使用 CKEditor?

    如果我使用CKEditor http cksource com ckeditor基于 Bootstrap 模板的 HTML 页面中的插件 效果很好 但是如果我像这样在 Bootstrap Modal 上插入编辑器 div class mod
  • 如何让 ckeditor 停止删除空 div

    stackoverflow 上也有类似的问题 但这些问题的答案对我不起作用 所以请不要将其标记为重复 在我的 cms 中 我希望人们能够添加 SPA 单页应用程序 内容页面 此类应用程序通常只有一个具有某些属性的 div 并且使用 java
  • CKEDITOR.styleSet.add - 'a' 元素的新样式

    由于某种原因如果我改变 p to a 它不再出现在样式列表中 有什么理由吗 CKEDITOR stylesSet add default name Wys wiersza 1 element p styles line height 18p
  • 如何在 CKEDITOR.inline 之后使用 CKEDITOR.replace

    我在内联模式下使用 CKEDITOR 每页有多个编辑器 为了创建它们 我使用
  • 如何使用 jQuery 隐藏和显示 CKEditor?

    以下代码应允许隐藏 显示 CKEditor 表单 a Hide a a Show a

随机推荐

  • 插入点 (^.) 是什么意思?

    下面的帕斯卡代码是什么意思 p rlink q q llink p 帕斯卡运算符 与运算符类似 gt 在 C 和 C 中 它取消引用指针 在您的情况下 p应定义为var p type 并访问记录中的变量 在本例中 rlink and lli
  • 单个文件中的 Ansible 事实

    我正在尝试使用以下命令使用 ansible 收集服务器清单 ansible all m setup a tree facts 但这会在facts文件夹下为每个主机生成很多单个文件 我希望所有服务器输出在一个唯一的文件中 我注意到内容类似于
  • 在 Entity-Framework Core 中批量插入到 MySQL [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我有一个由约 10 000 个对象组成的列表 比方说类Person 我需要将其插入到 MySQL 表中
  • 浏览器关闭后从数据库中删除

    我正在开发一个电子商务应用程序 但问题是 当用户将产品添加到购物车并在订购前关闭浏览器时 购物车会带走所有产品 所有购物车项目都保存在表中 如果用户关闭浏览器而不订购 我只想刷新购物车 您可以使用 Javascript 事件捕获浏览器关闭并
  • 检测 AVPlayerViewController 是否正在播放视频或正在缓冲并向播放器添加覆盖

    我必须检测视频是否处于播放模式或缓冲模式 我正在从 URL 加载视频 我已经尝试了下面的代码 我可以在视频开始播放后进行跟踪 但不能在视频处于缓冲状态时进行跟踪 另外 我想在我的播放器中添加覆盖视图 我尝试在 AVPlayer 中添加叠加层
  • Modelsim 中的参数问题

    最近我遇到了以下问题 在 Quartus 软件中 我定义了 Verilog 模块 如下所示 module module name input w1 1 0 in1 input w2 1 0 in2 output w1 1 0 out1 pa
  • C#:如何计算纵横比

    我对编程比较陌生 我需要根据给定尺寸 例如 axb 计算纵横比 16 9 或 4 3 我如何使用 C 来实现这一点 任何帮助将不胜感激 public string AspectRatio int x int y code am lookin
  • 如何在不使用太多内存的情况下打乱大型 csv 文件的行并将结果写入新的 csv 文件?

    因此 如果我有一个 csv 文件 如下所示 User Gender A M B F C F 然后我想编写另一个 csv 文件 其中行像这样打乱 作为示例 User Gender C F A M B F 我的问题是我不知道如何随机选择行并确保
  • 使用 OpenMP 并行嵌套循环运行缓慢

    我有一个 fortran 程序的一部分 其中包含一些嵌套循环 我想将其与 OpenMP 并行化 integer nstates N i dima dimb dimc a row b row b col c row row col doubl
  • 在哪里存储加密密钥 MVC 应用程序

    我正在使用 AES 加密 解密类 该类需要密钥值和向量值来加密和解密 MVC3 应用程序中的数据 保存记录时 我对数据进行加密 然后存储在数据库中 当我检索记录时 我在控制器中解密并将未加密的值传递给视图 我们关心的不是在数据通过网络时保护
  • PHP中如何找出特定进程仍在运行

    我正在编写一个脚本 该脚本构建其他脚本的队列 并应该管理它们的启动 管理器脚本应该知道哪个子进程已经完成 因此它可以启动在队列中等待的其他脚本 我添加了一个 echo 获取每个子进程的进程 ID 所以我有我的子进程进程 ID 现在正在使用系
  • knitr:python 引擎输出不在 .md 或 .html 中

    当我处理 Rmd 文件时 没有显示 matplotlib img 是否需要块选项或不同的 matplotlib 方法 title Viz Examples output html document keep md true r testpl
  • Scipy - 求矩阵列空间的基数

    我正在尝试编写一个简单的单纯形算法 其第一步是找到一个基本的可行解决方案 选择 A 的线性独立列的一组 B 将 x 中与不在 B 中的列相对应的所有分量设置为零 求解 m 个所得方程以确定 x 的分量 这些是基本变量 我知道解决方案将涉及使
  • 接口实现:声明必须兼容

    我有界面 interface AbstractMapper public function objectToArray ActiveRecordBase object 和课程 class ActiveRecordBase class Pro
  • Welzl 算法的迭代版本

    我正在使用 Welzl 算法来查找点云的最小外接圆 2d 或最小外接球体 3d 不幸的是 该算法具有非常高的递归深度 即输入点数 这个算法有迭代版本吗 我找不到任何并且不知道如何将递归更改为循环 我发现了一些迭代的最小包围圆 球算法 但它们
  • 强制 shell 在 SunGrid 引擎中使用 conda 变量中的 python [重复]

    这个问题在这里已经有答案了 我正在尝试在 SunGrid 引擎中执行 python 文件 并且从 anaconda3 环境变量中执行它 我的代码很简单 from future import print function import url
  • n维匹配算法

    在这里寻求一些建议 有谁知道在 n 维空间中开始研究匹配算法的好地方 例如 任何约会网站都必须使用某种算法来匹配 2 个人 我读到的是 我们可以将一个人的特征映射到一个 n 维数组中 每个特征都有一个点系统 一旦我们拥有一个人的所有 可用
  • 全屏 Swing 组件无法在 Mac OS X Mountain Lion 上的 Java 7 上接收键盘输入

    12 21 更新 7u10 最近发布 确认 问题仍然存在 值得庆幸的是 解决方法仍然有效 11 7 更新 我们有一个解决方法 来自 Oracle 的 Leonid Romanov 在 openjdk java net 邮件列表上提供了一些关
  • 在 jQuery Mobile 中设置 Listview
  • 高度
  • 我正在尝试调整大小 li 在我的 jQuery 移动网站 listview 中 似乎无法在 CSS 中找到合适的类来执行此操作 我基本上调整了一些元素的大小 页眉和页脚等 我有五个 li li 按钮垂直堆叠 按钮和页脚下方有间隙 我只想设置
  • CKEditor - 阻止用户粘贴图像

    我想为我的用户提供一个有限的编辑器 使用出色的 CKEditor 我试图阻止人们添加图像 因此我阻止了 源 视图并禁用了 粘贴 按钮 仅保留 粘贴为文本 按钮 但是 仍然可以粘贴图像 从网页复制 有没有办法防止这种情况发生 Thanks 我