#64092025年2月18日作者 Shuja-Mahmood4 个回答
GrapesJS版本 [x] 我确认使用最新版本GrapesJS 你用的是什么浏览器? Chrome v133 可复制演示链接 https://jsfiddle.net/2hjdrb7L/1/ 描述一下那个虫子 如何复现这个漏洞? 使用grapesjs v0.22.x 初始化一个 grapesjs 编辑器,并使用 grapesjs-touch 插件 v0.1.1。 预期的行为是什么? 在移动端,使用工具栏的移动处理程序应该能像之前版本那样将组件移动到另一个位置。 [链接](https://jsfiddle.net/h1nzadq0/)用grapesjs v0.21.13演示,运行正常。 目前的行为是什么? 拖动组件时会出现下落指示...
federica-capobianco
你解决了吗?我也面临类似的问题
Shuja-Mahmood
问题在 v0.22.6 依然存在
#63652025年1月8日作者 MLMarxx4 个回答
GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome 版本 131.0.6778.205 可复制演示链接 https://codesandbox.io/p/sandbox/naughty-microservice-5hp3h4 描述一下那个虫子 如何重现该漏洞:将 dark-style 类添加到正文中: js editor.CssComposer.addRules(".dark-style .test-block { margin-top: 50px; }"); 预期行为是什么: 在样式管理器中解释为margin-top: 50px; 当前行为如何: 在样式管理器中没有显示,但在...
artf
是的,这不支持,因为试图匹配任何可能的规则可能会影响性能。 不过你可以通过 [styleManager.select](https://grapesjs.com/docs/api/style_manager.html#select) 选择任意规则。
MLMarxx
好的,谢谢你的澄清——我现在用的是select,有什么办法用这种方式定位媒体标签吗?
artf
你可以获取你需要的CSSRule(['getRule'](https://grapesjs.com/docs/api/css_composer.html#getrule)),然后传给styleManager.select
#63572024年12月13日作者 Harshsne261 个回答
GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 https://codepen.io/Harshsne/pen/YPKwRBg 描述一下那个虫子 如何复现这个漏洞?从 blockmanager 添加行组件。在样式管理器中更改其宽度。(!重要性是因为默认宽度是100% !important)。现在添加文本框,改变其宽度。 预期的行为是什么? 宽度不应加上!important。 目前的行为是什么? 宽度加上了!important。 在更改行宽度后,如果我们更改画布中任意组件的宽度,宽度会被添加为 !importance 。  寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('some...
#63542024年12月13日作者 RakulAgn2 个回答
GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 https://grapesjs.com/演示 描述一下那个虫子 如何复现这个漏洞?直接访问画布尚未渲染的演示网站 Grapesjs 预期的行为是什么? 画布应该被渲染 目前的行为是什么? 未捕获的类型错误:无法设置空属性(设置为“_isEditor”) 画布上的空白行为准则 [X] 我同意遵守本项目的行为准则
artf
关闭了这个,演示看起来运行正常,可能是浏览器缓存或扩展出了问题
GJS Helper
Uncaught TypeError: Cannot set properties of null (setting 'isEditor')错误,尤其是在GrapesJS演示网站上出现空白画布时,表明编辑器初始化过程中发生了关键故障。该错误意味着GrapesJS正在尝试在预期存在但目前null的对象或DOM元素上设置内部属性(isEditor)。 根本原因分析 在GrapesJS的语境中,_isEditor属性常用于内部标记编辑器UI或核心结构中的元素(例如主容器、面板等)...
#63482024年12月7日作者 Frubl2 个回答
GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞?尝试选择,比如整个侧边栏工具/文本/所有功能抓取并放置在画布上 预期的行为是什么? 可能只复制粘贴文本或净化过的 html,或者可以拖拽只放我做成可删除的元素 目前的行为是什么? 我可以拖拽Canvas里的任何东西。  行为准则 [x...
artf
你可以通过“canvas:dragdata”事件控制画布中丢失的内容 https://jsfiddle.net/artur_arseniev/87rcb24n/
GJS Helper
你报告的问题是, GrapesJS 画布外的任意元素(包括编辑器界面的部分)可以拖拽到画布中,这是浏览器原生拖放功能导致的常见行为。默认情况下,浏览器允许拖放大多数可选内容或元素。 GrapesJS的画布作为标准HTML元素,继承了这种行为。 根本原因: 当你拖动元素时,浏览器会为 DataTransfer 对象填充各种数据类型(例如, text/plain, text/html)。如果 GrapesJS 没有明确拦截并阻止这些 dragover 和 drop 不需要内容的...
#63322024年11月26日作者 tim-prom1 个回答
GrapesJS版本[X] 我确认使用最新版本GrapesJS你用的是什么浏览器? Chrome v131可复制演示链接 https://jsfiddle.net/cmq9end2/1/描述一下那个虫子 如何复现这个漏洞?在 canvas 中添加一个 img,但 srcset 里的 URL 是无效的检查Chrome开发控制台的网络标签页——资产请求正确返回了404,但浏览器却不断无限循环发送请求。 <img width=“646” alt=“截图 2024-11-26 上午9:40 17” src=“https://github.com/user-attachments/assets/e737d681-a0e0-4155-80ee...
GJS Helper
你描述的问题,即<img>标签的无效srcset属性(且没有src属性)会导致无限404请求循环,这是某些浏览器(如Chrome)的已知行为,而不是GrapesJS本身的直接bug。GrapesJS正确地渲染你提供的HTML,但浏览器的渲染引擎随后会解释并尝试加载图片资源。 根本原因 当<img>元素包含srcset属性但缺少src属性,且srcset中指定的所有图像候选都无法加载(例如返回404错误),浏览器有时会进入激进的重试循环。src属性至关重要,因为它作为不支持s...
#63242024年11月22日作者 badiuciprian4 个回答
GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? 131.0.6778.86可复制演示链接 https://jsfiddle.net/badiuciprian/qe28obhr/1/描述一下那个虫子 如何复现这个漏洞?尝试将任意方块拖到画布上 预期的行为是什么? 组件被渲染到画布上 目前的行为是什么? 什么都没发生,浏览器控制台显示错误: BlockView.ts:103 未捕获类型错误:a.setDragHelper 不是函数 在o.startDrag(BlockView.ts:103:12) 在 HTMLDivElement.t (cash-dom.ts:765:36) 在我的真实应用中,...
mohamedsalem401
我成功复现了它。这只发生在“nativeDnD: false”上。这可能让块视图使用旧排序器的API。我会尝试解决这个问题。
artf
@mohamedsalem401你能帮我检查一下这个吗?
badiuciprian
谢谢你帮我处理这件事。我会关注更新。
#62962024年11月5日作者 maneeshp972 个回答
GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Arc v1.61.1 可复制演示链接 https://codesandbox.io/s/grapesjs-react-components-n6sff 描述一下那个虫子 @artf首先感谢你提供这个了不起的库。我当时试图在 grapesjs 中创建自定义React组件,偶然发现了之前报告的React集成问题中的一个沙盒链接。 [https://codesandbox.io/s/grapesjs-react-components-n6sff] 我通过引用沙盒后成功让自定义React组件工作,但有一个问题依然存在。每当自定义React组件被拖...
artf
是的,从演示的角度来看这是正常的。 你可以玩代码找到解决办法,但我会关闭这个,因为它不是核心漏洞。
GJS Helper
你观察到的行为,即自定义 React 组件被包裹在带有GrapesJS特定属性的额外div中,这对 GrapesJS 管理 DOM 组件至关重要。这个div在 GrapesJS 语境中不是“额外”包装器;它就是GrapesJS组件本身。 根本原因解释 GrapesJS组件结构:在GrapesJS中,画布中的每个组件都由对应的DOM元素表示。默认情况下,该元素是一个div。该元素作为组件在DOM中的根节点,使GrapesJS能够: 附加其内部属性(例如,data-gjs-ty...
#62692024年10月25日作者 bt-mkt4 个回答
GrapesJS版本 [X] 我确认使用最新版本GrapesJS 你用的是什么浏览器? Chrome 版本 130.0.6723.59(官方版本)(arm64) 可复制演示链接 https://codepen.io/btmkt/pen/QWeOJRB?editors=1111 描述一下那个虫子 如何复现这个漏洞?打开控制台。在画布内放置多个组件(例如用三列方便复现)。将extra类别末尾添加的test-comp组件拖曳到新增组件上。 预期的行为是什么? 组件model和 viewInit 事件(至少不确定是否有其他)应该只在将组件放入画布时触发,而不是每次拖到可丢弃组件上方时触发。 目前的行为是什么? 组件model和view初始...
artf
@mohamedsalem401这很可能是因为编辑器太肤浅了。 我觉得利用canMove中的“临时”选项(我们已经用它跳过部分动作)是合理的。你怎么说? “''js const wrapper = this.getShallowWrapper(); srcModel = wrapper?.附录(来源,{ 临时:真实})[0] ||无效; ```
mohamedsalem401
@artf 是的,我怀疑这和“浅层编辑器”有关。希望临时方案能奏效,然后我再开永久居民申请
bt-mkt
@mohamedsalem401这很可能是因为编辑器太浅了。我觉得利用canMove中的“临时”选项(我们已经用它跳过部分动作)是合理的。你怎么说?“''jsconst 包装器 = this.getShallowWrapper();srcModel = wrapper?.附录(来源,{ 临时:真实})[0] ||无效;``` 你好,@artf, 上面看到的改动(我看到已经实现了)似乎并没有解决我遇到的问题。它和0.22.1版本一样。 我已经把手写笔升级到了0.22.3(ht...
#62482024年10月22日作者 Frubl2 个回答
GrapesJS 版本 [x] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 铬 可复制演示链接 https://jsfiddle.net/a2hbxg0y/1/ 描述一下那个虫子 如何复现这个漏洞?打开开发工具,编写 iframe 正体元素样式 - 缩放:n; 目前的行为是什么? 当鼠标悬停在元素上时,蓝色边框会正常工作,而偏移则不然。它们的大小与缩放时相同:1; 附言:我无法分享完整复制演示的链接,因为CSS的更改需要在Canvas内完成。 附言: 可能已经有合适的缩放方法,但我只找到了整个画布的缩放。我想让其中一种设备类型的缩放更小 行为准则 [X] 我同意遵守本项目的行为准则
artf
你不应该编辑iframe的缩放,应该用[原生API](https://grapesjs.com/docs/api/canvas.html#setzoom)
GJS Helper
你发现了GrapesJS中与showOffsets特性相关的特定bug,当iframe身体应用了CSS zoom属性时。这是一个合理的观察,我可以确认你描述的行为。 问题确认 当zoom应用到GrapesJS画布iframe的body时,视觉内容会正确缩放(或放大)。蓝色选区边框(轮廓)也会相应缩放,因为它通常是直接应用于元素的CSS属性。然而,showOffsets指示器(显示填充和边距值的蓝色/橙色框)不会缩放;它们的大小与应用zoom: 1相同,相对于缩放内容显得异常...