#44342022年7月10日作者 Singwai2 个回答
葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? 任何可复制演示链接 https://grapesjs.com/demo.html描述一下那个虫子 这个漏洞和“ParserCss.js”有关。 https://github.com/artf/grapesjs/blob/dev/src/parser/model/ParserCss.js#L7-L8 解析器期望结果存储在包含select字符串和样式哈希对象(以及其他媒体查询参数)的哈希对象数组中。示例结果: “''js [ { 选择:“div, a, .a.b.c”,//带有逗号分隔符的某个选择器。 风格:{ 背景图片:URL(img/gradient.p...
artf
是的,目前我们不支持这类情况,但我觉得处理这些情况可能会更好。
ClaudeCode
谢谢你举报,@Singwai。 CSS 解析器形状的问题不允许 CSS 属性被定义超过一次。 似乎是一个竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这...
#44322022年7月9日作者 booellean2 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 103.0.5060.66(官方构建)(64位)(同级:稳定版) 可复制演示链接 https://codesandbox.io/s/cranky-morning-fh5diz?file=/index.js 描述一下那个虫子 如何复现这个漏洞?将自定义块“图片”放入画面并调整大小。查看标记预览,你会看到CSS中有两个带有重复标记的ID(图片ID和img ID)“撤销”直到再次调整大小查看标记预览,现在 CSS 标记的 ID 与图片元素重复,阻止了进一步的样式 预期的行为是什么? “图片”元素依赖于 CSS 样式化的 'img' 标签,以确保尺寸正确显示...
artf
我不太确定具体发生了什么,但我建议切换到“styleable:change”事件,并将其选项传递给“setStyle”,比如说, “''js Editor.ON(“styleable:change”, (model, prop, opts) => { let component = editor.getSelected(); 如果(分量?.attributes.styleShared) { let child = component.attributes.component...
ClaudeCode
谢谢你举报,@booellean。 关于撤销管理器在自定义命令中创建重复CSS的问题非常好。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('som...
#44132022年6月27日作者 YaseenHajajweh2 个回答
葡萄JS版本[X] 我确认使用最新版本的GrapesJS你用的是什么浏览器? Chrome 版本 103.0.5060.53(官方版本)(x86_64)可复制演示链接 私人项目描述一下那个虫子 我正在尝试将属性添加到我的自定义扇区,以及属性类型(选择),建造器准备好后我遇到了这个错误 无法读取未定义的属性(读作“替换”) 行为准则[X] 我同意遵守本项目的行为准则
YaseenHajajweh
@artf,抱歉我找到了解决办法
ClaudeCode
谢谢你举报,@YaseenHajajweh。 StyleManager.addProperty , 类型: 'select' , Cannot read undefined properties(读作'replace') 的问题似乎是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0...
#44112022年6月27日作者 zgeist4 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v102 可复制演示链接 https://jsfiddle.net/szLp8h4n 描述一下那个虫子 如何复现这个漏洞?选择任意组件在选择器管理器中添加类名,比如“<a href=”#“onclick='alert(123)'>check</a>'点击职业名称后,你收到了提示 预期的行为是什么? 类别名称应避免使用 目前的行为是什么? 类名中的JavaScript运行 需要在模板 https://github.com/artf/grapesjs/blob/dev/src/selector_manager/view/ClassTagVi...
Rawne
我还遇到了这个XSS的bug。例如,在组件的类中添加“><img src=x onerror=alert('XSS')>',它也会弹出。
#44002022年6月21日作者 shelendravashishtha23 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 无链接 描述一下那个虫子 如何复现这个漏洞?...在 GrapesJS init 函数中添加 Bootstrap...根据 Bootstrap 文档添加滑块组件...滑块只显示第一张图片,图片不会变化 预期的行为是什么? ...滑块应该从第一张图片开始,动画直到最后一张图片 目前的行为是什么? ...滑块只显示第一张活跃图像,然后什么都没发生 如果需要执行某些代码以重现该漏洞,请将其粘贴到下面: “''js 我使用的HTML是 <div data-gjs-highlightable=“true” id=“c7551f9a8-732...
artf
抱歉,问题追踪器主要是针对核心 Grapesjs 模块中的 bug,我认为在这种情况下你应该实例化“bootstrap”。通过 JS 手动“Carousel”(例如用 JS](https://grapesjs.com/docs/modules/Components-js.html)创建 [自定义组件“),因为编辑必须在内容加载前加载与画布相关的样式/脚本。
shelendravashishtha2
你好,亚瑟, 有没有办法在 Grapesjs 中获得屏幕大小的特定样式,比如基于媒体查询样式的不同样式?
ClaudeCode
谢谢你举报,@shelendravashishtha2。 关于Bootstrap Carousel Slider无法使用的好问题。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', ()...
#43762022年6月13日作者 iamqinglong2 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 铬100 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞?删除两个或多个自定义组件 <img width=“1230” alt=“截图 2022-06-10 下午3 11 54” src=“https://user-images.githubusercontent.com/48402616/173286267-09325ccd-6475-4b81-84ca-790a3f1b168b.png”>重新设计任一组件另一个未被选中的组件也会监听 'styleable:change' 事件 <i...
artf
你好@iamqinglong这是你在编辑器模型上创建监听器时预期的行为,但你可以通过这种方式检查所选组件 “''js init() { const component = this.model; this.listenTo(this.em, 'styleable:change', (args, property) => { if (editor.getSelected() === component) { console.log(args,财产); } }); } ```
ClaudeCode
谢谢你举报,@iamqinglong。 关于未被选中的自定义组件也会监听事件'styleable:change'的好问题。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => c...
#43712022年6月10日作者 clonefunnels4 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 https://www.teamfunnels.net/login.php 演示演示 描述一下那个虫子 请帮我理解如何修复这次更新导致的所有问题。我不明白为什么不让它和旧方式兼容。但请告诉我,这个例子我需要改动什么: storageManager: { 类型:“远程”, urlStore: 'save.php', urlLoad: 'load.php', storeComponents: true, // 启用/禁用以JSON格式存储组件 storeStyles: true, // 启用/禁用以 JSON 格式存储规则/样式 st...
Vac1911
@clonefunnels我做了一个快速函数,可以加载带有向下兼容的数据: “''t” async function load(editor: grapesjs.编辑) { const { Parser } = editor; const data = 等待编辑器。StorageManager.load({}); 如果 (data.pages) data.pages = [{ ID: '1', frames: [{ component: data.components ??...
Vac1911
@artf 快速补充说明:类型声明中应添加“editor.loadProjectData”
artf
请务必仔细阅读发布说明 https://github.com/artf/grapesjs/releases/tag/v0.19.4 https://github.com/artf/grapesjs/pull/4223#issuecomment-1152331298
#43562022年5月31日作者 Justin83032 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 铬101 可复制演示链接 https://jsfiddle.net/sdrf72wx/1/ 描述一下那个虫子 如何复现这个漏洞?在编辑器初始化时执行以下代码添加和移除组件的选择器查看控制台输出 预期的行为是什么? 如果组件选择器被移除,它应该会把选择器打印到控制台。 目前的行为是什么? 如果选择器被移除,控制台不会提示,因此“selector:remove”事件不会触发。 此外,“selector”事件只捕获“selector:add”和“selector:update”,但不捕获“selector:remove”,但在选择器管理器的[event](...
artf
你好@Justin8303“selector:remove”指的是全局选择器的容器,所以只有当选择器实际从全局集合中移除时才触发,而不是从组件中移除。当你从组件中移除选择器时,它依然存在,因为它可能也被用在其他地方。 如果你需要跟踪组件类的变化,我建议使用“component:update:classes”事件
ClaudeCode
谢谢你举报,@Justin8303。 关于selector:remove event不存在的好问题。推荐的组件方法是使用事件驱动的API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something ch...
#43502022年5月26日作者 ronaldohoch3 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 勇敢浏览器 v1.39.111 可复制演示链接 https://jsfiddle.net/e7oau8v6/ 描述一下那个虫子 如何复现这个漏洞?画布上的一根柱子。 选择文本组件进入风格标签页,查找装饰背景设置背景图像。 )。 'addType' 主要用于添加新的 UI 输入,如果你不需要新的 UI(比如你这种情况),你可以依赖 ['addBuiltIn'](https://grapesjs.com/docs/api/style_manager.html#...
tuongnguyendev
你好@artf,我遇到的问题和@ronaldohoch用最新版本的GrapesJS时很相似 背景图片预览显示错误链接 详情见下方图片: 
ClaudeCode
谢谢你举报,@ronaldohoch。 关于样式管理器在选择组件时不会更新背景,这个问题很棒。推荐的 StyleManager 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('so...
#43412022年5月20日作者 senthil177cse4 个回答
葡萄JS版本 [X] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? Chrome v101.0.4951.54 可复制演示链接 https://jsfiddle.net/7sn5h91r/7/ 描述一下那个虫子 我的问题是样式、边界、属性、宽度、样式和颜色在 JSON 里都无法更新,即使我在 https://grapesjs.com/demo.html 里检查过。请查看附上的截图。以下是我的代码JSON回复。告诉我如何移除那些空属性,比如border-width、border-style、border-color。 我的回复 JSON:{ “选择器”:“is98i”, “风格”:{ “宽度”:“100%”, “__p...
aharishsundhar
@artf解决这个问题,我在最新版本的侧边也遇到了同样的问题 v0.18.4 填充:0 0 0 0,填充顶部:“,填充底部:”“,填充右:”“,填充左:”,
senthil177cse
嗨@aharishsundhar...... 据我所知,不用填充物是:0 0 0 0;你只能加垫层顶部、垫层底部、垫层左侧、垫层右侧......
aharishsundhar
@senthil177cse我在填充方面遇到同样的问题:0 0 0 0;还创建了填充顶部的create,但出现了空属性,如何修复Grapesjs v0.18.4的问题?