#34602021年5月17日作者 Redix02 个回答
错误: (节点:206)UnhandledPromiseRejectionWarning:类型错误:无法读取未定义的属性“get” (节点:206)未处理承诺拒绝警告:未处理承诺拒绝。该错误要么源于在没有捕捉块的异步函数中抛入,要么是拒绝了未用 .catch() 处理的承诺。要在未处理的承诺拒绝时终止节点进程,可以使用CLI标志“--unhandled-rejections=strict”(参见 https://nodejs.org/api/cli.html#cliunhandledrejectionsmode)。(拒绝编号:1) (节点:206)[DEP0018]弃用警告:未处理的承诺拒绝将被弃用。未来,未被处理的承诺拒绝将以非...
ClaudeCode
谢谢你举报,@Redix0。 安全和依赖性问题很重要。GrapesJS 团队积极致力于保持依赖系统的更新。 为你现在: 运行“npm审计修复”以查看可用的补丁 查看是否有更新的GrapesJS版本,可能已经解决了这个问题 如有稳定版,升级前先测试最新稳定版 如果漏洞非常严重,可以使用“npm audit fix --force”,但请务必彻底测试 理解风险: 在GitHub安全公告中查看具体漏洞详情 并非所有高严重性问题都会影响你的代码路径 某些漏洞仅在特定条件下触发 保持...
#34592021年5月16日作者 anlumo2 个回答
版本: 0.17.3 预期的行为是什么? 文档说我可以通过以下配置配置来配置包装器元素: https://github.com/artf/grapesjs/blob/0027dcd1194715eeaf4b24db878dd7ebac069cc4/src/dom_components/config/config.js#L6-L24 详细描述那个漏洞** 我觉得这种配置在其他地方都没被用过。在项目中搜索“wrapperName”,只显示我上面链接的地方。遗憾的是,由于大量误报,搜索“包装器”不可行。 我能在初始化后用 'editor.getWrapper()' 返回的对象配置包装器元素。
artf
是的,实际上名称默认是通过 [i18N](https://github.com/artf/grapesjs/blob/d00ccb945c610bf748b2ed36e4b2fddc1c40b5ba/src/i18n/locale/en.js#L23) 配置管理的。 从0.17.*版本开始,甚至“包装器”选项也不再必要,因为你应该像扩展其他组件一样扩展“包裹器”组件(在之前版本中,“包装器”是在插件出现之前初始化的)。 我会在下一次发布👍时移除它们
ClaudeCode
谢谢你举报,@anlumo。 DomComponents' 配置错误的问题似乎是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这有助于团队更快识别根本原...
#34572021年5月13日作者 RaresVlaiduc4 个回答
你好@artf! 版本:0.17.3 你能重现演示中的bug吗?[ ] 是的[x] 不 预期的行为是什么? 输入是正确的 详细描述那个漏洞 我正在尝试创建一个自定义输入(复选框),但不行。 目前的行为是什么? 见附件。 你能附上截图、截屏或实时演示吗?**[x] 是(附上)[ ] 不 代码:  结果: ”中返回一个“元素”。 所以,与其返回一个简单的“字符串”,不如这样做:
ahmedderkaoui
如果你想要一个带标签的简单复选框,不需要创建自定义特质,你可以直接使用:
#34552021年5月12日作者 harsh2013 个回答
版本: 0.17.3 预期的行为是什么? 风格应在多页中保持一致 详细描述那个漏洞 我们有个用例是保存并重新加载 GrapesJS 的内容。我们希望利用页面管理器来减少渲染内容,并以更小的部分进行管理。 当我们尝试在多个页面加载内容时,问题就会出现。CSS 会被完全清除,因为之前插入的页面会被清除。 繁衍步骤插入第1页的组件和样式切换到第2页,插入组件和样式。切回第1页 当前行为 风格被抹去。 CodePen 的重要摘录 “JavaScript” const pageManager = 编辑器。页数; editor.setComponents('<p id=“abcd”>测试页面1</P>'); editor.setStyle(“...
artf
你好,所有页面都可以使用样式@harsh201,所以你不应该使用'editor.setStyle'(它会用新样式替换所有样式),而是用类似'editor.getStyle().add('...')''
ClaudeCode
谢谢你举报,@harsh201。 样式在使用页面管理器在多页面插入组件时会被清除,看起来是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这有助于团队更快...
#34542021年5月12日作者 TheDude703 个回答
版本: "0.17.3" 你能重现演示中的bug吗?[X] 是的[ ] 不 预期的行为是什么? 使用默认RTE插入链接后,链接立即可在设置中进一步编辑,即设置HREF和目标 详细描述那个漏洞 在选择默认RTE的文本并将其转换为链接后,文本会被正确地包裹在<a>标签中,但直到取消选择并选择其他文本后,它才会作为链接组件出现,有时还需要重复两次才能被识别为GrapesJS组件。 你能附上截图、截屏或实时演示吗?**[ ] 是的(附上)[X] 不 这是我的编辑初始化: 有没有办法在插入链接后强制更新被编辑的组件?
artf
是的,目前就是这样运作的(内容只有在编辑完成后才会被解析和转换成组件)。我们大概可以用像[这样](https://github.com/artf/grapesjs/issues/610#issuecomment-768553776)的方法作为链接的默认行为。
artf
更新了本次发布的链接创建 https://github.com/artf/grapesjs/releases/tag/v0.18.3
ClaudeCode
谢谢你举报,@TheDude70。 RTE插入链路不更新DOM的问题似乎是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这有助于团队更快识别根本原因 在...
#34462021年5月9日作者 Spectrevuln-sketch4 个回答
请帮帮我,我想把 gjs 的数据存储到 mysql,但我无法从前端到后端传输任何数据 这是我的代码: 'const editor = grapesjs.init({ 容器:“#editor”, storageManager: { 类型:“远程”, 参数:{}, // 用于请求的自定义值 你的服务器端点 urlStore: 'http://example.com/store-webpage', urlLoad: 'http://example.com/load-webpage', contentTypeJson: true, setStepsBeforeSave: 1, }, blockManager: { 附录:“#blocks”...
Ju99ernaut
变量名不能包含 '-',因此以下语法无效: “''js const { gjs-assets, gjs-components, gjs-css, gjs-html, gjs-styles } = req.body; ```
Spectrevuln-sketch
请帮帮我,我想把模板存到 MySQL,我该怎么做?
Ju99ernaut
遗憾的是,这可能超出葡萄的范围,但有些需要注意 “''js 这无效 const { gjs-assets, gjs-components, gjs-css, gjs-html, gjs-styles } = req.body; 你可以尝试分别分配每个值 cont { body } = req; const assets = body['gjs-assets']; const components = body['gjs-components']; //... ``` 另外,...
#34442021年5月8日作者 mahfuzdiu4 个回答
你好, 我正在尝试用这个代码编辑器从面板中移除一个按钮。Panels.removeButton(“options”, “fullscreen”)' 。它移除了按钮,但出现了这个错误。  该如何解决?
mahfuzdiu
我用自定义的CSS编辑器隐藏了它。Panels.getButton('options', 'fullscreen').attributes.className = 'hidepanelbtn'' 顺便说一句,如果能有个合适的解决方案就更好了。
artf
你好@mahfuzdiu在官方演示中这样做,没有错误,你能创建一个可复现的演示吗?
no-response[bot]
由于我们请求原作者提供更多信息未获回应,本期已自动关闭。仅凭当前期刊中的信息,我们没有足够的信息采取行动。如果您有答案或找到我们需要的答案,请随时联系我们,以便我们进一步调查。
#34432021年5月7日作者 chilled-capybara4 个回答
版本: 'v0.17.3' 你能重现演示中的bug吗?[x] 是的[ ] 不 预期的行为是什么? 见下文 目前的行为是什么? 嵌套依赖中使用的“underscore”版本中存在已知的安全漏洞。 当前版本的“葡萄”使用“backbone-undo”^0.2.5” https://github.com/artf/grapesjs/blob/d7f773202c72710dd787e2ce418c114c9ef81986/package.json#L20 最新版本是通过['npm'](https://www.npmjs.com/package/backbone-undo?activeTab=versions)实现的“0.2.5” 'ba...
emyasnikov
我也在想是否需要“骨干撤销”,或者可以用类似的替代。这个套餐已经6年没更新了
artf
这个套餐已经6年没更新了 嗯,除了更新依赖(比如出于安全考虑),它是一个功能完整的库,不需要添加或更新其他东西。 总之,这个[PR](https://github.com/artf/grapesjs/pull/3439)似乎修复了.lock级别的安全漏洞,但我不确定它们是否会保留在全新安装中。 我知道纱线有针对这种情况的“解决”,但不确定NPM里有没有其他替代方案。
chilled-capybara
谢谢你的回复总之,这个 [PR](https://github.com/artf/grapesjs/pull/3439) 似乎修复了 .lock 级别的安全漏洞,但我不确定它们是否会保留在全新安装中。 我觉得这可能会修复主“grapejs”仓库里的版本,但我不确定它是否限制了通过“backbone-undo”导入的版本。 如果你通过以下方式建立一个全新的项目 新的“Yarn.lock”仍会引用两个版本;
#34422021年5月7日作者 zgeist4 个回答
创建编辑器实例 试着摧毁 收到错误 
artf
感谢你的反馈,我会在下一个版本里尝试修复 @ershadul1没有,有一个FrameWrapView(iframe周围的东西,比如封装器、选择工具等),里面有一个FrameView(iframe本身),但可能因为移除顺序的问题,框架会先移除,而不是它的包装。
ershadul1
https://github.com/artf/grapesjs/blob/0027dcd1194715eeaf4b24db878dd7ebac069cc4/src/canvas/view/FrameWrapView.js#L73 我看到移除是直接用在移除本身的。我不明白。这是个错误吗? 如果我设置“this.frame = null”,错误就会消失。 想听听专家的意见。@artf
#34412021年5月7日作者 emilsedgh4 个回答
版本: 从16.30到现在所有Grapesjs版本都有这个问题。 你能重现演示中的bug吗?[x] 是的[ ] 不 预期的行为是什么? 以下是有效的MJML代码。在 grapesjs-mjml 上应该能正常工作。 详细描述那个漏洞 目前,如果你用 grapesjs-mjml 配合上面的代码,它会以两种方式出现故障:它会这样渲染样式:导出代码时,MJML 代码导出如下: 在这两种情况下,你都可以看到样式是用HTML编码的。 目前的行为是什么?* “mj-style”不是textNode,其内容也不能被htmlEncoded。 详细描述那个漏洞 我之所以把这条信息提交到这个仓库而不是 grapesjs-mjml,是因为:这次回归是提交...
emilsedgh
嗨,阿图尔。感谢你对葡萄的出色处理。这真的很棒。 临时方案运作得很好。如果需要,可以随时关闭,但如果能提供一种操控行为的方式,那肯定会很不错。
artf
你好@emilsedgh抱歉我回复得晚了,但无论如何,我们可以考虑在这种情况下跳过逃脱,但最快的办法可能是直接将 mj 风格的方法扩展到 HTML “''js 编辑。Components.addType('mj-style', { 型号:{ toHTML() { const content = this.components().map(c => c.get('content')).join(''); 返回 '<mj-style>${content}</mj-style>'...
artf
谢谢你,Emil,暂时我先结束这个,以防以后出现类似问题,我们会考虑加一个新的道具来跳过逃脱。