问题 #1797💬 已回答提出于 2019年2月14日作者 arachnosoft0 个反应

内部拖放出现奇怪问题——内容丢弃 === “null”

快速解答作者 artf

谢谢你的报告@arachnosoft 顺便说一句,我能复现它,但只有在第一个CKEditor实例激活后,你能确认吗?

阅读下方完整回答 ↓

问题

你好@artf, 我遇到了一个非常奇怪的问题,与HTML5拖放有关。 当我在 grapesjs 中选择一些混合内容,包括可编辑的文本内容和周围的组件作为一个整体选择时,丢失(复制)的内容有时是“null”(包含“null”文本值的字符串,而不是 JavaScript 的 null)。 我已经用 Chrome 71.0.3578.98 的 Newsletter 演示成功复现了这个问题。我不知道其他浏览器是否也会出现这种情况...... ![葡萄干涸](https://user-images.githubusercontent.com/42835357/52798051-772a1980-3077-11e9-970c-edebaab49d02.gif) 当问题出现时,我注意到在捕捉 canvas:dragdata 事件时,result.content 变量是“null”(字符串)。我查了调用栈,发现这个值来自grapesjs核心函数Droppable.getContentByData()中的dataTransfer.getData(“text/html”)调用: '} 否则如果 (((0, underscore.indexOf)(types, 'text/html') >= 0) { content = dataTransfer.getData('text/html').replac...

回答(3)

artf2019年2月16日

谢谢你的报告@arachnosoft 顺便说一句,我能复现它,但只有在第一个CKEditor实例激活后,你能确认吗?

arachnosoft2019年2月18日

是的,@artf,这似乎正是测试案例...... 如果我刷新页面以获得干净的上下文,清空画布,丢弃一个网格组件(相当复杂的),选择部分文本和周围单元格(但不激活CKEditor),然后从文本中拖拽,它就能正常工作。 但只要我双击某个单元格激活CKEditor,点击其他地方关闭编辑,并按照上面完全相同的步骤(选择和拖拽完全一样),丢失的内容就会变成“null”。 ![Grapesjs 第1797期第1期](https://user-images.githubusercontent.com/42835357/52960021-1a40a300-3398-11e9-820d-51f6b4186d8...

artf2019年2月21日

我注意到,每次编辑一个新组件时,DOM里都会创建一个新的CKEditor实例,尽管CKEditor插件使用的是CKEditor的inline()方法。我不知道这是不是“设计使然”,或者这是否能解释这类问题。

是的,这就是他们的内嵌插件工作方式,但我觉得这和这有什么关系

顺便说一句,CKEditor确实会在dataTransfer对象和编辑中添加类型,出于某种原因(可能是为了处理它们的一些边缘情况),“文本/纯文本”(GrapesJS完全依赖原生对象,但不涉及它们)。

相关问答

通过相似的问题讨论继续研究。

问题 #1767

确保getHtml() / runCommand(“gjs-get-inlined-html”)返回画布的最新内容

你好@artf, 我遇到过类似甚至相同的问题:#1327 编辑文本块时,我点击一个外部按钮获取画布内容,不离开画布的光标。 此时,如果我调用 getHtml() 或 runCommand(“gjs-get-inlined-html”)(我的 grapesjs 是用 Newsle...

2 个回答更新于 2020年3月10日

问题 #4323

当你在Canvas上有2k组件时,拖拽组件到画布时出现性能问题

葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? Google Chrome 版本 101.0.4951.41(官方版本)(64 位)可复制演示链接 https://jsfiddle.net/Laze0pyg/描述一下那个虫子 如何复现这个漏洞?使用...

4 个回答更新于 2025年6月19日

问题 #4559

RTE操作第一次后就无法正常使用

嗨..!,RTE操作第一次后就不起作用了,当我们尝试对之前应用的元素应用该动作时,它无法正常工作 从版本0.18.3到最新版本都会出现这个问题,以下版本运行正常 复制链接 工作版本: https://jsfiddle.net/76gnxh4d/35/ 无法正常工作的版本: ht...

4 个回答更新于 2023年1月5日

问题 #4506

拖拽模式下的拖拽块错误:绝对

葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v103 可复制演示链接 https://stackblitz.com/edit/js-1xpo7b 描述一下那个虫子 如何复现这个漏洞?使用dragMode:绝对(设计师模式)从块...

4 个回答更新于 2022年9月15日

与此问题匹配的付费插件

根据问题关键词和标签相关性精选,助你更快交付。

查看全部插件

正在加载付费插件推荐……

免费方案

在以下平台查看开源 GrapesJS 插件: GitHub 或在我们的免费目录中快速搜索。

浏览免费插件 →
高级方案

高级插件提供支持、定期更新和生产就绪的功能——为你节省数天的集成工作。

浏览高级插件 →

浏览插件分类

直接跳转到市场上的插件分类页面。