PageKit — 可自托管的 GrapesJS 建站工具,附完整源码。 获取抢先体验

GrapesJS 问题

已收录 3,464 个 GitHub 问题 — 370 个已解决 · 90 个待解决 搜索、筛选并探索经过实战检验的答案。

找到 203 个问题

🔍 enhancement
#44342022年7月10日作者 Singwai2 个回答
1 个反应

CSS 解析器的 shape 不允许 CSS 属性被定义超过一次。

GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? 任何可复制演示链接 https://grapesjs.com/demo.html描述一下那个虫子 这个漏洞和 ParserCss.js有关。 https://github.com/artf/grapesjs/blob/dev/src/parser/model/ParserCss.js#L7-L8 解析器期望结果存储在包含select字符串和样式哈希对象(以及其他媒体查询参数)的哈希对象数组中。示例结果: 这防止了CSS对同一属性的定义重复,这对于更好的向后兼容性是必要的。CSS是有效的,但编辑器无法输出正确的HTML。示例 CSS 演示中复制步...

artf

是的,目前我们不支持这类情况,但我觉得处理这些情况可能会更好。

GJSBlock

谢谢你举报,@Singwai。 CSS 解析器形状的问题不允许 CSS 属性被定义超过一次。 似乎是一个竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这...

#43852022年6月15日作者 froodian2 个回答
0 个反应

Index.d.ts说执行命令应该返回 void,但文档说可以使用它们的返回值

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 任何 可复制演示链接 https://grapesjs.com/docs/modules/Commands.html#stateful-commands 描述一下那个虫子 如何复现这个漏洞? 在Typescript设置中, 预期的行为是什么? 允许的,就像 https://grapesjs.com/docs/modules/Commands.html#stateful-commands 中的“Let's return something” 示例 目前的行为是什么? 我很难让这个例子与 定义也包括——(除了上述 (editor: Editor...

artf

谢谢@froodian我会更新他们的

GJSBlock

谢谢你举报,@froodian。 关于index.d.ts的建议很棒,说执行命令应该返回虚无值,但文档说他们的返回值可能会被使用!虽然这个具体功能还没有出现在核心 API 中,但有几种方法可以实现类似的行为。 使用事件系统: “JavaScript editor.on('component:update', (component) => { 你的逻辑 }); ``` 替代方法: 听取“selector:add”以获取CSS选择器更改 使用“selector:custom”来...

#42502022年4月11日作者 dinosaurawr2 个回答
0 个反应

Init() method typings error

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome v 100.0.4896.75 可复制演示链接 https://stackblitz.com/edit/typescript-ou8qpc?file=index.ts&view=editor 描述一下那个虫子 如何复现这个漏洞?尝试用index.d.ts开始 grapesjs 预期的行为是什么? 编辑器初始化时无错误 目前的行为是什么? 'Type'[字符串, 任意]' 不可分配到类型 '[]'。 Source有2个元素,但目标只允许0'行为准则 [X] 我同意遵守本项目的行为准则

artf

谢谢@dinosaurawr在这里解决了这个问题 https://github.com/artf/grapesjs/pull/4216/files

GJSBlock

谢谢你举报,@dinosaurawr。 关于init()方法类型错误的建议很棒!虽然这个具体功能还没有出现在核心 API 中,但有几种方法可以实现类似的行为。 使用事件系统: “JavaScript editor.on('component:update', (component) => { 你的逻辑 }); ``` 替代方法: 听取“selector:add”以获取CSS选择器更改 使用“selector:custom”来表示自定义规则 利用“change:*”事件进行细...

#42252022年3月30日作者 Sudhin354 个回答
0 个反应

The facebook plugin is not working in the grapes js

GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? Chrome v9可复制演示链接 不是在那里描述一下那个虫子 如何复现这个漏洞?在 React 应用中安装 Grapes js 并运行制作 Facebook 插件组件并导入 grapes js(从 https://developers.facebook.com/docs/plugins/page-plugin/ 获取 Facebook 页面列表代码)运行应用程序在编辑器中拖放 Facebook 组件 预期的行为是什么? 去掉 Facebook 组件后,编辑器里应该会显示 Facebook 页面 目前的行为是什么? 去掉Facebook组件后,它...

Sudhin35

@artf 请帮帮我

artf

我运行 'editor.setComponents(...FB HTML..)` ![Schermata 2022-03-30 alle 16 30 46](https://user-images.githubusercontent.com/11614725/160859671-e8b1bbb7-a1ee-466c-a306-58ffe02944ed.png) 请提供一个可复现的演示。

Sudhin35

@artf 谢谢你的回复 但你已经添加了editor.setComponents(...FB HTML..)默认操作,然后加载编辑器 请创建一个 Facebook HTML 组件,然后在编辑器中拖放该组件,否则加载不了 我就是这样尝试过的

#40992022年1月25日作者 jloguercio2 个回答
0 个反应

“Using draggableComponents: false”仍然会拖动(克隆?)某些元素,如果我尝试编辑文本

GrapesJS 版本[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仍然能支持文本选择,我会试着修复。

GJSBlock

谢谢你举报,@jloguercio。 “Using draggableComponents: false” 的问题在我尝试编辑文本时仍然会拖拽(克隆?)某些元素,这似乎是竞赛条件或状态管理时序的问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤:** 如果还没测试过,请用最新的Gra...

#40592022年1月8日作者 miladmeidanshahi2 个回答
1 个反应

Selector escape function doesn't support tailwindcss classes

GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? Chrome v97描述一下那个虫子 在 /blob/dev/src/selector_manager/model/Selector.js#L171 https://github.com/artf/grapesjs处,选择器转义函数不允许 / , . 因此我们无法使用一些顺风类,比如 basis-1/2 和 inset-0.5 ...... 也许这 /([^a-z0-9\w-\/.:]+)/gi 正则表达式的帮助。行为准则[x] 我同意遵守本项目的行为准则

miladmeidanshahi

抱歉,我发现这个配置 https://github.com/artf/grapesjs/blob/e52b5c29e4346dba7367b769a44d99a2226e025f/src/selector_manager/config/config.js#L17

GJSBlock

谢谢你举报,@miladmeidanshahi。 selector escape 函数不支持 tailwindcss 类的问题似乎是竞态条件或状态管理时序的问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(...

#40582022年1月8日作者 clonefunnels2 个回答
0 个反应

Hyphen changed to " by editor messes up modern coding.

GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? 铬可复制演示链接 没必要——明显的问题描述一下那个虫子 代码需要这样: data-zanim-lg='{“from”:{“opacity”:1,“x”:70},“to”:{“opacity”:1,“x”:0},“ease”:“CubicBezier”,“duration”:0.8,“delay”:0.3}' data-zanim-xs='{“from”:{“opacity”:1,“y”:-37},“to”:{“opacity”:1,“y”:0},“ease”:“CubicBezier”,“duration”:0.8,“delay”:0.3}'...

artf

这不是个bug,而是HTML中属性转义的工作原理。 “''js domEl.innerHTML = '<div data-attr='{“key”: “value”}'>Text</div>'; domEl.innerHTML; -> '<div data-attr=“{”key“: ”value“}”>Text</div>' ```

GJSBlock

谢谢你举报,@clonefunnels。 连字符改为“by editors messing up modern coding”的问题似乎是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤:** 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复...

#40002021年12月7日作者 zachsnoek4 个回答
0 个反应

Pasting a component in root body layer throws TypeError

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome v89 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞?在官方演示中,进入图层管理器,用 cmd+c复制任意图层 点击根“Body”图层,粘贴 cmd+p进入浏览器控制台查看错误 预期的行为是什么? 贴上身体层可能不被允许,但不应该出错。 目前的行为是什么? 粘贴根 Body 层会抛出以下异常: 错误来自[paste commend](https://github.com/artf/grapesjs/blob/d97efb31080f937f980ed79b9d...

artf

谢谢@zachsnoek,是的,因为包装器(正体)是根组件,它没有相关的集合。 可能我们需要更新粘贴逻辑,但你目前的修复是个不错的补丁,可以避免这种错误,所以PR非常受欢迎 👍

zachsnoek

谢谢@zachsnoek是的,因为包装器(主体)是根组件,所以它没有相关的集合。可能我们需要更新粘贴逻辑,但你目前的修复是个不错的补丁,可以避免这种错误,所以PR非常受欢迎 👍 听起来不错;我会在本周末前刷新个人纪录 :+1:

GuiMoraesDev

伙计们,我也遇到类似的问题 对我来说,错误发生在FileUploader上 ![截图,2021-12-16 17-10-32](https://user-images.githubusercontent.com/18218319/146442408-edc2621f-ea02-4131-bac6-47dd2ff384c7.png) 我试着在Grapes Demo里输入,看看那里是否也会出现这种情况,结果确实发生了! 我意识到如果我清理LocalStorage并重新加载页面,...

#39392021年11月13日作者 xQwexx4 个回答
0 个反应

Disabled drag and drop in preview

GrapesJS 版本[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,当我们切换到预览时。

#38832021年10月21日作者 akhalid-dev1 个回答
0 个反应

GrapesJS 的导出功能和“查看代码”功能,而 Canvas 在六进制颜色方面则不像其他方式。

GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome v91 可复制演示链接 https://grapesjs.com/demo.html 描述一下那个虫子 如何复现这个漏洞?访问网站:https://grapesjs.com/demo.html。清理画布以便进行更简单的演示。从“模块”部分插入文本元素。 选择丢弃的文本元素,选择“样式管理器”,展开“排版”部分。粘贴十六进制值:“8ceb34”。这样画布 GrapesJS 的文本颜色会更新为绿色。 然而,当我们查看生成的CSS或导出为zip时,缺少的“#”符号将缺失,颜色也不会被应用。 ![图片](https://user-im...

GJSBlock

感谢你举报,@akhalid-dev。 关于 GrapesJS 导出功能和“查看代码”功能,以及 Canvas 在十六进制颜色方面不一样的建议,真是太棒了。!虽然这个具体功能还没有出现在核心 API 中,但有几种方法可以实现类似的行为。 使用事件系统: “JavaScript editor.on('component:update', (component) => { 你的逻辑 }); ``` 替代方法: 听取“selector:add”以获取CSS选择器更改 使用“sel...

浏览所有主题