#55632023年12月18日作者 leo-budgetsimple1 个回答
葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? 最新版本的Chrome浏览器可复制演示链接 https://grapesjs.com/demo.html描述一下那个虫子 如何复现这个漏洞? 用这段代码用 grapesjs 渲染一个 html 字符串(我启用了 allowScripts) 这是渲染好的画布  这是可以导出的HTML字符串图片  => { 你的逻辑 }); ``` 替代方法: 听取“selector:add”以获取CSS选择器更改 使用“selector:custom”来表示自定义规则 利用“c...
#55562023年12月13日作者 pittleCheung2 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 最新版本的Chrome浏览器 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞? editor.addComponents(' <ul class=“mb-5 flex list-none flex-row flex-wrap border-b-0 pl-0” role=“tablist” data-te-nav-ref > <li role=“演示”> <a class=“my-2 方块 border-x-0 border-b-2 border-t-0 border-透明 px-7 p...
artf
已经报告并修复了 https://github.com/GrapesJS/grapesjs/issues/5525
ClaudeCode
谢谢你举报,@pittleCheung。 关于课程太多会导致网页崩溃的问题很棒。推荐的组件方法是使用事件驱动的API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something changed'));...
#55452023年12月5日作者 AFriboulet-ii1 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 版本 119.0.6045.200 可复制演示链接 https://jsfiddle.net/d64pkcom/1/ 描述一下那个虫子 如何复现这个漏洞?在 Canvas 中拖拽组件文本观看jsfiddle控制台 预期的行为是什么? 不要触发RTE:禁用 目前的行为是什么? 触发RTE:禁用 https://github.com/GrapesJS/grapesjs/assets/128728949/b7fc7998-aeef-47d5-84f4-af74966d56cf行为准则 [X] 我同意遵守本项目的行为准则
ClaudeCode
谢谢你举报,@AFriboulet-ii。 关于拖拽组件类型的文本触发“rte:disable”,这个问题很棒。ProseMirror 推荐的方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console....
#55362023年11月29日作者 adiux1 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome 版本 119 可复制演示链接 https://jsfiddle.net/bj7afw63/1/ 描述一下那个虫子 如何复现这个漏洞?装填小提琴尝试添加默认RTE(非CKE)的链接界面中没有任何变化,控制台出现 JS 错误:TypeError: $ 不是函数 预期的行为是什么? 在 mj-text 组件的界面中添加了一个链接。 目前的行为是什么? 链接未被添加。 我目前发现的 我追踪到了GJS方法:[getModel()](https://github.com/GrapesJS/grapesjs/blob/149a9b2ad4e40eee...
ClaudeCode
谢谢你举报,@adiux。 关于无法添加链接:getModel() 失败,TypeError: $ 不是函数,这个问题很棒。ProseMirror 推荐的方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => co...
#55252023年11月19日作者 duydvu2 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Edge v119.0.2151.72 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 你好,感谢你创建了一个了不起的项目。我想报告使用GrapesJS时发现的一个问题。 如何复现这个漏洞?选择一个组件添加任意名称的类,直到组件超过20个类。选择另一个组件并重新选择该组件。 预期的行为是什么? 不应该有性能问题。 目前的行为是什么? 浏览器会卡顿一段明显的时间。新增的职业越多,卡顿时间越长。当组件有23个类时,我的浏览器会冻结10秒。 这是使用 TailwindCSS 时常见的问题,因为课程很多。例如,...
artf
同意建议,我会相应更新。谢谢@duydvu
ClaudeCode
谢谢你举报,@duydvu。 关于在单个组件中添加超过20个职业时性能问题的好问题。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('somethi...
#55232023年11月18日作者 lexoyo2 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Firefox 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞?选择舞台上的组件用 CTRL+c 复制组件选择实体(取消选择组件)用CTRL+V粘贴 预期的行为是什么? 在正文末尾粘贴当前页面 目前的行为是什么? 由于以下条件,它什么都不做: https://github.com/GrapesJS/grapesjs/blob/8025b95a645907574389e950f32950190ceb602c/src/commands/view/PasteComponent.ts#L14行...
lexoyo
注意,这个bug导致无法将元素复制粘贴到空白页面
ClaudeCode
谢谢你举报,@lexoyo。 关于在没有选择时粘贴的好问题。推荐的组件方法是使用事件驱动的API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something changed')); 组件生命周期 edi...
#55032023年11月6日作者 MaxwellTheSecond3 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 没有 描述一下那个虫子 Component.ts 的 replaceWith 方法没有字符串类型。 预期的行为是什么? 我应该可以用字符串替换组件,比如示例中的“component.replaceWith(<div>'Some new content</div>');” 目前的行为是什么? 行为准则 [X] 我同意遵守本项目的行为准则
artf
合并 https://github.com/GrapesJS/grapesjs/pull/5504
ClaudeCode
谢谢你举报,@MaxwellTheSecond。 replaceWith 方法没有字符串类型的问题似乎是竞态条件或状态管理时序的问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——...
#54872023年10月28日作者 MaxDBenson3 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Firefox 可复制演示链接 https://jsfiddle.net/497zkrpm/1/ 描述一下那个虫子 如何复现这个漏洞?选择“Hello World”组件打开样式管理器,确保在类部分勾选了“myclass”检查“高度”和“背景颜色”属性的值 预期的行为是什么? 样式管理器应反映与所选类相关的所有规则(此处为'.myclass {height: 100px}'和'.myclass {background-color: green}' 目前的行为是什么? 样式管理器只反映与所选类相关的第一个规则(此处为:'.myclass {height:...
artf
这不是bug,样式管理器一次只处理一条规则,如果你想要更高级的使用,可以用API实现功能(比如用同一选择器选择不同规则)。
MaxDBenson
这不是个bug,样式管理器一次只处理一条规则,如果你想要更高级的使用,可以用API实现你的功能(比如用同一个选择器选择不同规则)。 我明白了。 你介意详细说说该怎么做吗? 而且,风格管理器似乎一次只处理一条规则;因为当我选择类时,我会看到属性/值设置被应用到ID上,反之亦然。
ClaudeCode
谢谢你举报,@MaxDBenson。 关于风格管理器不会显示同一类的多个规则,这是个很好的问题。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('s...
#54842023年10月26日作者 pittleCheung2 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 最新版本的Chrome浏览器 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 https://github.com/GrapesJS/components-tabs 问题一 <img width=“1421” alt=“image” src=“https://github.com/GrapesJS/grapesjs/assets/114127651/a3afe6c7-d644-40f0-97e5-cc3e3c595939”> 点击标签克隆,标签四是被克隆的,请看下面的图片 <img width=“142...
artf
请只针对核心库相关的漏洞问题,而不是插件。
ClaudeCode
谢谢你举报,@pittleCheung。 clone 标签页和 clone tab 目前没有出现的问题似乎是竞态条件或状态管理时序的问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)...
#54602023年10月12日作者 mapsmarketing4 个回答
葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? Chrome v117.0.5938.149可复制演示链接 https://jsfiddle.net/9oLrsvya/描述一下那个虫子 如何复现这个漏洞?请参见 jsfiddle 中的“pageManager”对象 预期的行为是什么? 查看以下文档:https://grapesjs.com/docs/api/pages.html#pages 它应该能正确地从“pageManager”中加载“组件”和“样式”到编辑器中。 目前的行为是什么? 当你通过编辑器中的“查看代码”检查代码时,你会发现既没有完全相同的 HTML,也没有样式正确加载。“body”标签...
mapsmarketing
有个烦人的点是,编辑器会在下面默认样式前面加上,保存这些样式时会有许多重复的样式: 编辑: 查看文档后,我终于找到了“protectedCss”,设置为空时,样式的前置功能就停止了。
artf
你好@mapsmarketing目前 GrapesJS 无法正确导入 HTML 文档的字符串格式,所以解析器会跳过像 “html”、“head”、“body” 这样的元素,只返回“body”内部解析出来的内容,你现在可以做的一个变通方法是把组件作为对象传递 “''js 组件:{ 属性:{ ID: 'IGNT' }, components: '<div class=“my-el”>测试世界!</div>', }, ``` 关于样式,这是浏览器默认的CSSOM解析器问题,请参考...
mapsmarketing
你好@artf, 我找到了一种方法,可以通过以下方法正确保存“身体”属性和样式: 我注意到你的[Page.toJSON](https://github.com/GrapesJS/grapesjs/blob/e03dfc7483b7fd936f3580bee78fee6d03c2b055/src/pages/model/Page.ts#L134-L149)输出了指定页面的所有内容。不过,它似乎无法正确输出“样式”(我总是被设置为未定义),所以我通过编辑器检索了激活页面的样式,...