#41162022年2月1日作者 saudAtIrisdame4 个回答
葡萄JS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 版本 1.34.81 Chromium:97.0.4692.99(官方构建)(64位) 可复制演示链接 https://codesandbox.io/s/strange-sun-qgdcq?file=/index.js 描述一下那个虫子  如何复现这个漏洞?创建自定义类型组件将组件放入 Canvas在样式管理器中将显示属性设置为...
Vac1911
我是在独立发现同样问题后才诊断出问题的。 正在查看“StyleManager.select()” https://github.com/artf/grapesjs/blob/75cd582a8d1a91096276bc4dccc7475a269ad45c/src/stylemanager/index.js#L339-L395 在第369行,每个属性都会被循环检查其对新目标的可见性。 然而,“checkVisibility”函数并不会通过查看目标样式来访问当前值。它会寻找存储...
saudAtIrisdame
@Vac1911 @artf 我明白了,但解决办法是什么?我该怎么解决这个问题?这是Grapej的问题还是我的?
Vac1911
@saudAtIrisdame 这似乎是葡萄的问题。我自己解决了,改了源代码,重新排序了“select”方法,最后检查可见性。 这是运行“build:js”后获得的dist文件 https://gist.github.com/Vac1911/4c89f2a48809bee5fefd2d21525d37ad “''js select(target, opts = {}) { cont { em } = this; const trgs = isArray(target) ?目...
#40992022年1月25日作者 jloguercio2 个回答
葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? Chrome v96可复制演示链接 https://jsfiddle.net/809enL2w/1/描述一下那个虫子 我用domComponents: { draggableComponents: false }来避免拖动组件,只有在工具栏里用箭头拖动时才会,但如果快速选择或编辑文本,它仍然会拖动/克隆/复制选中的文本和其他组件 https://user-images.githubusercontent.com/12191804/150874942-73b3b714-5a9b-4e87-81b4-56ecd4dfb0b9.mp4 这是个bug吗?或者我该...
artf
是的,看起来原生的HTML5 D&D仍然能支持文本选择,我会试着修复。
ClaudeCode
谢谢你举报,@jloguercio。 “Using draggableComponents: false” 的问题在我尝试编辑文本时仍然会拖拽(克隆?)某些元素,这似乎是竞赛条件或状态管理时序的问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤:** 如果还没测试过,请用最新的Gra...
#40832022年1月20日作者 henzigo4 个回答
葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? Safari 15.0可复制演示链接 https://jsfiddle.net/adw6y12f/9/描述一下那个虫子 你好, 我正在尝试按照[这里](https://github.com/artf/grapesjs/pull/1185#issuecomment-395967321)描述的设置编辑器的根组件。不幸的是,这方法不行,我可以编辑所有HTML内容。 谢谢你的建议,或者帮我修复那个bug:) 如何复现这个漏洞?创建包含一些 div 的 HTML将“id”或“class”设置为你想作为根层的某个div将该“id”设置为“init”方法的根元素: “...
artf
是的,LayerManager模块本身没有任何文档。确实,它正在等待重构的名单上,一旦完成,我们可以发布更多关于其使用情况和API文档的内容。 无论如何,我看到你之前说过你想用我的演示示例,但用倒置逻辑(只启用已知的部分)。嗯,我试过了,但不幸的是,我之前发现了一些需要修复的问题。一旦下一个版本准备好,我会发布演示示例。
artf
是的,我看到了LayerManager里根配置的问题。临时的解决办法是触发图层面板渲染时的根更改: “''js editor.on('run:core:open-layers', () => 编辑器。Layers.setRoot('#editable')); ``` 不过,LayerManager的根节点并不决定你的组件是否可编辑,它在这里的作用只是在LayerManager界面面板里更改根节点。 如果你需要禁用模板的部分内容,这大概就是你要找的:https://jsfid...
henzigo
谢谢你的回答。如果能有一些关于“根”元素的文档说明会更好,因为只有在PR/issue里才会提到。
#40762022年1月17日作者 diemkay4 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome 97.0.4692.71 可复制演示链接 https://jsfiddle.net/ovrz5ug2/4/ 描述一下那个虫子 你好——我们在多人游戏场景中使用 GrapesJS 时遇到了这个 XSS 漏洞,几个特权用户可以通过编辑器(即非开发者)对模板和组件进行修改。实际上,这使他们容易受到组织内部攻击,一个用户添加了恶意代码,另一个用户可能发现并运行。 如何复现这个漏洞?在组件的“id”属性中添加恶意代码,可以直接在HTML中或通过特征管理器(并保存)——在这种情况下,'id=“<details/open/ontoggle=alert...
artf
谢谢@diemkay如果你有任何建议,请参考这个问题:https://github.com/artf/grapesjs/issues/3082
diemkay
@artf 谢谢,但我已经看过那个工单了,它并没有涵盖我这里描述的问题。 注入不在实时预览中,而是在样式管理器中,它尝试通过设置“.innerHtml”来显示组件的“id”。
artf
是的,抱歉,关得太早😁了。我会试着在下一个版本修复。
#40422022年1月2日作者 sanjanaadeshra3 个回答
葡萄JS版本[x] 我确认使用最新版本的GrapesJS你用的是什么浏览器? 铬可复制演示链接 https://stackblitz.com/edit/angular-dei45q?file=src%2Fapp%2Fapp.component.ts描述一下那个虫子 附上一张图片,让大家了解编辑器的样子 预期的行为是什么? 需要加载葡萄 ediotr 目前的行为是什么? 编辑器加载了,但图标都看不见。行为准则[X] 我同意遵守本项目的行为准则 。 请升级,下次打开相对于最新版本的新漏洞问题。
ClaudeCode
谢谢你举报,@sanjanaadeshra。 在 Angular 应用加载时图标未加载的问题似乎是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤:** 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这有...
#40242021年12月22日作者 mingxin-yang4 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 https://grapesjs.com/demo-newsletter-editor.html 描述一下那个虫子 如何复现这个漏洞?https://grapesjs.com/demo-newsletter-editor.html 用CKeditor,我不确定是不是配置问题首先在文本部分输入长内容,并滚动到屏幕中央当你在中间粘贴一段文本时,视图会滚动,但那不是粘贴的位置 ,因为它和核心无关。
bernhardmiller
@mingxin阳 我也遇到过类似的 CKEditor 和滚动问题。对我来说,是用户按下回车键时发生的。如果葡萄文档太长,画布就会往下滑太多。 我不得不在 CKEditor 中解决这个问题,方法是从 Enterkey 插件中移除这行: https://github.com/ckeditor/ckeditor4/blob/f6dd30807a1c7cb585f376a38fb13dffd2213a75/plugins/enterkey/plugin.js#L432 也许有类似...
#40002021年12月7日作者 zachsnoek4 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v89 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞?在官方演示中,进入图层管理器,用“cmd+c”复制任意图层点击根“Body”图层,并用“cmd+p”粘贴进入浏览器控制台查看错误 预期的行为是什么? 贴上身体层可能不被允许,但不应该出错。 目前的行为是什么? 粘贴根“Body”图层会抛出以下例外: “''文本 未捕获类型错误:无法读取未定义的属性“indexOf” PasteComponent.js:13 在 Array.forEach (<anonymous>)...
artf
谢谢@zachsnoek,是的,因为包装器(正体)是根组件,它没有相关的集合。 可能我们需要更新粘贴逻辑,但你目前的修复是个不错的补丁,可以避免这种错误,所以PR非常受欢迎 👍
zachsnoek
谢谢@zachsnoek是的,因为包装器(主体)是根组件,所以它没有相关的集合。可能我们需要更新粘贴逻辑,但你目前的修复是个不错的补丁,可以避免这种错误,所以PR非常受欢迎 👍 听起来不错;我会在本周末前刷新个人纪录 :+1:
GuiMoraesDev
伙计们,我也遇到类似的问题 对我来说,错误发生在FileUploader上  我试着在Grapes Demo里输入,看看那里是否也会出现这种情况,结果确实发生了! 我意识到如果我清理LocalStorage并重新加载页面,...
#39752021年11月25日作者 Sudhin352 个回答
葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? Chrome v9可复制演示链接 什么都没有描述一下那个虫子 如何复现这个漏洞?实现多页概念创建3页点击装饰品中的背景图片(样式管理器),并将其添加到首页现在添加新页面或点击第二页或第三页 预期的行为是什么? 背景图片不应复制到所有页面,它应该只添加到所选页面 目前的行为是什么? 当只添加到页面时,背景图像会被添加到所有页面 如果需要执行某些代码以重现该漏洞,请将其粘贴到下面: 行为准则[X] 我同意遵守本项目的行为准则
artf
请先检查这个选项 https://grapesjs.com/docs/modules/Selectors.html#component-first-selectors 如果仍然有问题,可以打开一个带有可复现演示链接的正式漏洞问题。
ClaudeCode
谢谢你举报,@Sudhin35。 关于背景图片如果只添加一页,所有页面都会开始重复,这个问题非常好。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log(...
#39722021年11月23日作者 ronaldohoch2 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Brave Versão 1.32.106 Chromium: 96.0.4664.45 (Versão oficial) 64 bits 可复制演示链接 https://jsfiddle.net/960huLz5/ 描述一下那个虫子 如何复现这个漏洞?开放葡萄运行: 'editor.addComponents('<noscript><img src=“”></noscript>');'打开出口模态检查该图片是否在无单标签标签中 4.1. ; console.log(解析器.parseFromString('<noscript><img/></noscript>', 'text/html')); 你会看到它如何放入<noscript>内部<head>和<img> <body>
ClaudeCode
谢谢你举报,@ronaldohoch。 关于不能在Noscript标签内丢弃img,这个问题很棒。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('...
#39482021年11月16日作者 Sudhin352 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 不是在那里 描述一下那个虫子 如何复现这个漏洞?安装Grapes js并实现select组件代码将选择组件拖入编辑器点击选择组件并输入特征重新加载页面。 预期的行为是什么?输入的选项不应在该组件的特征管理器中重置已输入的选项应在该组件的特征管理器中可见 目前的行为是什么? 每次页面重新加载后,“我的选项”(在特质中)都会被重置 如果需要执行某些代码以重现该漏洞,请将其粘贴到下面: 行为准则 [X] 我同意遵守本项目的行为准则
artf
你好@Sudhin35请按照[此API](https://grapesjs.com/docs/modules/Traits.html#define-new-trait-type)来创建自定义特征,我强烈建议将选项作为组件属性存储,而不是使用内部组件
ClaudeCode
谢谢你举报,@Sudhin35。 关于我的选项(在特质中)每次重载页面后都会重置,这个问题很棒。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('s...