#39392021年11月13日作者 xQwexx4 个回答
葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? 第95卷可复制演示链接 https://codesandbox.io/s/grapes-border-issue-forked-2c0ib?file=/src/index.js:10258-10261描述一下那个虫子 如何复现这个漏洞? 我正在尝试创建一个自定义组件,包含拖拽端放功能, 由于修复了#2904,可拖拽属性被完全关闭。 预期的行为是什么? 使得有意拖拽的自定义组件可以作为预览 目前的行为是什么? 目前预览版中所有可拖拽事件均被禁用 我也愿意先做个PR,我想先讨论一下解决这个问题的最佳方式, 或者这可能是项目的设计决定。行为准则[X] 我同意遵...
artf
@xQwexx你好,在这种情况下你会怎么解决?我们还是需要在预览版中保持D&D的关闭。 你能不能也发布你的组件代码,以便更好地理解使用场景?
no-response[bot]
由于我们请求原作者提供更多信息未获回应,本期已自动关闭。仅凭当前期刊中的信息,我们没有足够的信息采取行动。如果您有答案或找到我们需要的答案,请随时联系我们,以便我们进一步调查。
xQwexx
你好@artf我更新了一个演示,我的建议是使用'attributes: { draggable: 'true'}',在预览中指示组件是否可拖曳,组件模板的拖拽处理保持如' attributes: { draggable: 'true', ondrop: 'drop(event)', ondragover: 'allowDrop(event)'}' 我现在不太确定具体怎么处理, 但如果没有这个属性,我会把可拖拽的 html 标签改为 false,当我们切换到预览时。
#39322021年11月9日作者 rakelley2 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Brave 版本 1.31.88 Chromium:95.0.4638.69(官方构建)(64位)在 Linux 上 可复制演示链接 https://jsfiddle.net/0a3o7cL6/ 描述一下那个虫子 操作组件特征集合的方法(例如“addTrait”和“removeTrait”)似乎总是假设集合是基于Backbone衍生的集合类型,但在某些情况下,它实际上是一个简单的数组。 代码随后尝试调用不存在的方法。 我对代码库不够熟悉,无法确定真正的bug是“get('traits')”返回了不一致的类型,还是调用方法没有考虑混合返回类型。 我在视...
ClaudeCode
谢谢你举报,@rakelley。 安全和依赖性问题很重要。GrapesJS 团队积极致力于保持依赖系统的更新。 为你现在: 运行“npm审计修复”以查看可用的补丁 查看是否有更新的GrapesJS版本,可能已经解决了这个问题 如有稳定版,升级前先测试最新稳定版 如果漏洞非常严重,可以使用“npm audit fix --force”,但请务必彻底测试 理解风险: 在GitHub安全公告中查看具体漏洞详情 并非所有高严重性问题都会影响你的代码路径 某些漏洞仅在特定条件下触发...
#38782021年10月20日作者 Sudhin354 个回答
葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? Chrome v9可复制演示链接 不是在那里描述一下那个虫子 如何复现这个漏洞?在 React 应用中安装 Grapes js打开葡萄 js 编辑器在 grapes js init 中实现多页概念为每个页面创建一个重命名按钮 预期的行为是什么? 应该有办法为每个页面重命名页面名称和页面ID。 目前的行为是什么? 我找不到任何方法为每个页面重命名页面名和ID。 如果需要执行某些代码以重现该漏洞,请将其粘贴到下面: 行为准则[X] 我同意遵守本项目的行为准则
Sudhin35
@artf 目前没有办法做到吗?请帮帮我解决这个问题,我被拉黑了
artf
@Sudhin35下次请开启讨论,因为没有真正的漏洞需要修复或重现。 无论如何,这就是你现在的做法 'page.set({ id: 'new-id', name: 'new name' }''
Sudhin35
@artf 感谢回复,其实我之前卡住了,所以把bug发了,下次会开放讨论 但现在使用上述命令后,我出现了“this.editorData.Pages.pages.config.pages'[index].set”不是函数“,出现了这个错误 如果我的代码有任何问题,请帮帮我
#38732021年10月19日作者 JGiard3 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v94 可复制演示链接 https://jsfiddle.net/3mrzaqtx/ 描述一下那个虫子 如何复现这个漏洞?在画布上添加一个视频块从文档中移除 GrapesJs 编辑器元素(可选)重新将 GrapesJs 编辑器元素附加到文档中 预期的行为是什么? GrapesJ的画布在手术前后应该是一样的 目前的行为是什么? 视频会多次显示 我的调查 根据ComponentVideoView,这是由render()函数引起的。与 updateProvider() 函数不同,render 不会在添加新的 iframe/video 标签前清...
JGiard
我创建了一个拉取请求,列出了我对问题理解的修复流程。
artf
不,你绝不应该依赖这种东西,或者你会销毁重启,或者干脆隐藏并展示给编辑。
ClaudeCode
谢谢你举报,@JGiard。 关于重新连接GrapesJs编辑器到文档时出现重复视频块的好问题。推荐的 Canvas 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('somethi...
#38612021年10月12日作者 heminei1 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome 版本 94.0.4606.81(官方版本)(64 位) 可复制演示链接 https://jsfiddle.net/szLp8h4n 描述一下那个虫子 如何复现这个漏洞?选择正体元素按“s”或“w”键 预期的行为是什么? 不应该在控制台里出错 目前的行为是什么? 控制台出现错误: 行为准则 [X] 我同意遵守本项目的行为准则
ClaudeCode
谢谢你举报,@heminei。 关于按“s”或“w”键时出现的JS错误——无法读取未定义属性(读作“indexOf”)的好问题。推荐的 Canvas 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => cons...
#38572021年10月8日作者 flowize-project2 个回答
葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? Firefox可复制演示链接 https://grapesjs.com/demo.html描述一下那个虫子 如何复现这个漏洞? 你需要在画布上非常快速地从一个组件点击到另一个组件,否则会出现 js 错误,“递归过多”,HTML 内容也会消失。 误差见第1627行模型/component.js,方法为“ensureinlist”。我们有几位客户报告了这个问题。 你可以在这个视频里查看问题:https://recordit.co/j9e1S6guW5 谢谢。行为准则[X] 我同意遵守本项目的行为准则
arthuralmeidap
你好,@flowize-PROJECT!希望你一切顺利!在你的问题中,你发布了GrapesJS演示链接作为可复放链接,但视频是用自定义Grapesjs安装录制的。 你能试着录个视频,用GrapesJS演示链接重现问题吗?
ClaudeCode
感谢你的报告,@flowize-project。 关于用户快速点击不同组件时Firefox问题的好问题。推荐的 Canvas 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('som...
#38322021年9月29日作者 Sudhin354 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 不是在那里 描述一下那个虫子 如何重现这个bug? 在 React 应用中安装葡萄 js 进入编辑器,拖动一个组件。(示例:文本组件) 使用样式管理器为组件做样式 保存到数据库,在编辑器里查看代码 重新加载页面 请参见编辑器中的代码 预期的行为是什么?该 ID 的 html 标签 id 和 css 不应被更改或删除,即使重新加载编辑器 目前的行为是什么?如果我们在任何更改后重新加载编辑器,html 代码中的 id 会改变,而该 id 的 css 也会被删除 如果需要执行某些代码以重现该漏洞,请将其粘贴到下面: const edit...
artf
关闭“autoload: true”,你会把所有东西加载两次
#38252021年9月27日作者 mingxin-yang4 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 https:// 描述一下那个虫子 如果文本组件的宽度不长,ckeditor 上的元素会对下面的文本进行反包和封块  但当你点击组件的下方部分,而不是仅在文本上方时,就不会有遮盖问题 =>{ editor.trigger('canvasScroll'); }); ``` 订阅事件“rte:enable”并触发canvasScroll。这样,葡萄会重新计算位置。
mingxin-yang
@ronaldohoch 谢谢,这个代码对我来说很有效
mingxin-yang
本网站也会实施漏洞。https://grapesjs.com/demo-mjml.html  右上角的工具栏也会被覆盖 @artf
#38102021年9月23日作者 mihir-khandekar4 个回答
葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? 92.0.4515.131(官方构建)(64位)可复制演示链接 无描述一下那个虫子 如何复现这个漏洞?使用编辑器将 HTML 插入 Canvas。Canvas.getBody().ownerDocument.execCommand('insertHTML', false, HTMLString)' 命令。插入的 HTML 会显示在编辑器画布上。使用编辑器的 editor.getHtml() 函数。'editor.getHtml()'返回的HTML字符串不包含通过execCommand命令插入的HTML。 预期的行为是什么? 最终 HTML 应返回通过 '...
artf
getHTML 与画布的 DOM 无关...... 仔细阅读文档 https://grapesjs.com/docs/modules/Components.html,尽量理解模型和组件视图之间的区别。
mihir-khandekar
@artf感谢你的迅速回复,那么正确的做法是什么? 我的需求是:我想在当前光标位置添加一个组件。那我怎样才能让它成为 editor.getHtml() 方法的一部分?
ionutmiftode
@mihir-Khandekar,你修好了吗?
#38062021年9月22日作者 throne19864 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome新版本 可复制演示链接 https://codesandbox.io/s/react-redux-toolkit-application-forked-l5rhp?file=/src/pages/Editor.js 描述一下那个虫子 如何复现这个漏洞?从块管理器拖拽视频到画布区域尝试通过将鼠标悬停视频并点击“使用视频”按钮来添加视频 预期的行为是什么? 当用户将鼠标悬停并点击“使用视频”按钮时,应该会在画布中的视频标签中添加一个视频 目前的行为是什么? 当用户在模态中将鼠标悬停在视频上并点击使用视频按钮时,视频根本不会被添加,在控制台上显...
throne1986
@artf你能帮我解决这个问题吗?
artf
问题就在这里 “''js Editor.ON(“Component:create”, (model) => { if (model.get(“type”) === “video”) { setAddVideo(false); console.log(“视频网址”,videos.videoUrl); 编辑。Commands.run(“open-assets”, { target: editor.getSelected(), // <- 当你放下视频时,未被选中 目标:模特,...
throne1986
> 问题就在这里> “''js> editor.on(“component:create”, (model) => {> 如果 (model.get(“type”) === “video”) {> setAddVideo(false);> console.log(“视频网址”,videos.videoUrl);>编辑。Commands.run(“open-assets”, {> // target: editor.getSelected(), // <- 当你放下视频时,未...