#32602021年2月3日作者 mhowey3 个回答
Grapesjs 的颜色选择器在 Chrome 和 Firefox 之间工作方式不同。当你打开选中的组件,而该组件之前从未设置过背景色(例如......),颜色选择器在Chrome中设置为100%不透明度,Firefox中设置为0%。 问题是用户在使用Firefox时甚至可能热点查看这个透明度滑块,尝试更改颜色却失败,却没意识到透明度是0%。 预期行为: 在所有浏览器中,当被样式的组件从未指定背景色时,颜色选择器默认会将透明度设置为100%。 实际行为: 在Chrome中,颜色选择器正常工作。在Firefox中,颜色选择器最初总是以不透明度滑块为0%打开。 提前感谢你的精彩项目!! 版本: 最新消息 你可以在控制台输入“grape...
mhowey
@artf Firefox 和 Chrome 的另一个区别是调色板显示的内容。Firefox显示透明方框,而Chrome显示灰色方框。
artf
似乎在最新的Firefox版本上已经解决了
ClaudeCode
谢谢你举报,@mhowey。 Firefox中*色彩选择器透明度滑块在0的问题似乎是竞赛条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这有助于团队更快识别根...
#32582021年2月2日作者 stljeff14 个回答
你好, 我有一个自定义组件,我们称它为Section Block。我想防止用户在其他区块里丢弃分段块。这可能吗? 参考:https://grapesjs.com/docs/modules/Components.html#define-custom-component-type 我知道可以在新的组件类型上定义可拖拽的选项。我对这些选项的理解是包容的。 有没有办法让可拖拽的排他性,比如我说“这个方块可以丢弃在除[[组件类型]]以外的任何地方”?
artf
你可以用 ':not()' 选择器,比如':not(.except-this-class)'
stljeff1
谢谢@artf。这个方案大致上奏效。现在我遇到了一个新问题,一些占位符文本消失了。 在我的模块内部的某些元素中,我会有一个带有文本节点的HTML元素,然后是另一个嵌套的HTML元素。例如,包含图标的链接标签。 当我在组件模型中添加可拖曳选项时,块内类似上述A标签的HTML元素会失去文本节点。如果我用类似span标签的方式包裹这些文本节点,文本会保留。不变的元素示例: 你知道有什么方法会导致文本节点出现在与其他元素一起的容器中时消失吗? 以下是我创建自定义组件的方式: 如果这...
artf
你用旧的API定义组件,这需要其他东西才能正常工作,这可能是问题的原因(我自己试过,一切正常)。请在这里查看正确的 API https://grapesjs.com/docs/modules/Components.html#define-custom-component-type
#32572021年2月2日作者 kuhelbeher3 个回答
你好,我在尝试获取封锁类别时遇到了奇怪的bug。“block.get('category')'” 在 Chrome 中返回对象,但在 Firefox 中同样的代码返回字符串:  左边 - Chrome,右边 - Firefox 此外,启用 [adblock](https://chrome.google.com/webstore/detail/adblock-%E2%80%94-best-ad-blocker/gighm...
xinnai
@kuhelbeher我也遇到同样的问题,你解决了问题吗?
artf
这个问题似乎已经通过最新版本的GrapesJS解决了
ClaudeCode
谢谢你举报,@kuhelbeher。 block.get('category')在Chrome和Firefox中返回不同结果的问题似乎是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例...
#32562021年2月1日作者 kumarabhishek0082 个回答
警告 请阅读并遵循接下来的三步,然后在发布问题前删除它们遵守贡献指南 https://github.com/artf/grapesjs/blob/master/CONTRIBUTING.md先快速搜索一下,看看有没有人没开同样的问题所有相关陈述/问题都必须填写/回答,否则问题可能已结案JSFiddle 入门模板 https://jsfiddle.net/szLp8h4nCodeSandbox 入门模板 https://codesandbox.io/s/1r0w2pk1vl 版本: 你可以在控制台输入“grapesjs.version”获得版本 你能重现演示中的bug吗? [ ] 是的 [ ] 不 预期的行为是什么? 详细描述那个漏...
ClaudeCode
谢谢你举报,@kumarabhishek008。 封装组件的背景图像在更新时第二次加载不出来的问题似乎是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这...
#32542021年1月29日作者 alemenciones2 个回答
也许你能帮帮我......我想在打开 TraitManager 时移除标签“.gjs-traits-label”。   我尝试了类似这样的方法:
artf
“''CSS .gjs-traits-label { display: none } ```
ClaudeCode
谢谢你举报,@alemenciones。 关于如何在traitManager中隐藏“.gjs-traits-label”的好问题。GrapesJS 推荐的方法是使用事件驱动 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => con...
#32532021年1月29日作者 luziye92 个回答
你好, 我们遇到了一个问题——当拖动新组件到画布时,属性名称(如“宽度”)的颜色是蓝色的,但我们并没有修改它的值。  Grapesjs很有力量,对我们非常有帮助。不过,我们对葡萄新手,已经花了很多时间在这个问题上,但没有进展。 请告诉我们具体的机制,或者相关代码所在的是什么文件? 如果你能在本周末前回复我,我将非常感激。 非常感谢:) 此致, 贾伦
artf
你好,@luziye9你肯定用的是带有自定义“样式”属性的块/组件...... 无论如何,如果你要打开一个 BUG 问题,你必须按照模板(Grapesjs 版本、可复现的演示等)操作。所以,目前我决定关闭这个无效问题。
ClaudeCode
谢谢你举报,@luziye9。 关于当价值变化时,房产颜色如何变成蓝色? 这个问题非常好。推荐的 Canvas 方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something...
#32522021年1月28日作者 ThetripGr4 个回答
我在尝试如何更改画布内元素的样式时,发现用颜色选择器特性设置元素的内联样式颜色属性(不是通过getCS()获得的内联样式标签),但使用getHtml()时,这个样式属性完全消失了。我注意到在各期问题中有一个被弃用的 propertyavoidInlineStyle。如果是这样,为什么会出现这种情况?为什么现在不再是这个选项了?我想把CSS保存在特别需要的地方,内联保存,不想多一个样式标签和所有独特的ID,因为我没有使用样式管理器。这有可能实现吗?
artf
@DodoTrip原因是内联CSS不能定义带有状态(例如':悬停')和媒体查询的样式,所以我一直觉得它是个无用的限制,而不是功能。尽管如此,如果你不需要组件响应性或不同状态,你仍然可以使用这个选项。
ThetripGr
你好,@artf,感谢你的回复。能举个例子说明现在是怎么做的吗?还是应该避免InlineStyle让它更容易使用?
artf
说实话,我很早就不再用 avoidInlineStyle,但我想它应该能用 😁
#32492021年1月27日作者 theSC0RP4 个回答
嘿,@artf。我想访问在存储模板时生成的 json,但不想实际存储模板。json 对象可以通过事件访问,但我不想调用 'editor.store()' 然后再用事件。 有没有办法获取json对象(比如编辑器里调用函数或者某个属性)? 或者有没有办法停止“editor.store()”方法,这样我就能获取正在存储的json并中止调用?
Joshmamroud
@theSC0RP 这是你在找的吗?[editor.getComponents()](https://grapesjs.com/docs/api/editor.html#getcomponents)
artf
@theSC0RP不确定你是否想要存储功能,但Josh提出的方案是正确的,或者你也可以添加存储(如果需要,也可以在里面不做任何操作......)https://grapesjs.com/docs/modules/Storage.html#define-new-storage
theSC0RP
你总可以添加存储(如果需要,也可以在里面什么都不做......)https://grapesjs.com/docs/modules/Storage.html#define-new-storage 谢谢@artf。这就是我最终做的。用 'editor.getComponents()' 时,你会得到一个循环结构(model -> view -> model -> ...),但 storageManager 不会存储它,也不能用来加载模板。
#32472021年1月24日作者 fmay2 个回答
你好@artf——你建造的东西非常壮观。这过程很温和,因为我远非JS高手。不过,我几乎所有配置都完成了——除了这个! 我想设置在选择图片时显示的特征(alt、src、id)。我相信初始化时可以完成一次,但我真不知道怎么做。我已经读遍了所有能找到的相关内容,但仍然卡住了。 我唯一让它工作的方法如下...... 另外——开箱结版的“Alt”排在前面,我真的很希望它排在“src”之后。我不知道怎么去除它,因为“removeTrait()”似乎不起作用。 虽然我的解决方案有效,但我很想知道应该怎么做。 非常感谢!
artf
嗨,Freddy,在这种情况下你可以简单地扩展图像分量 “''js 编辑。Components.addType('image', { 型号:{ 默认值:{ 特质:[{name: 'alt'}, {name: 'src'}, {name: 'id'}] } } }); ```
ClaudeCode
谢谢你举报,@fmay。 关于问题:特质的好问题。推荐的组件方法是使用事件驱动的API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something changed')); 组件生命周期 editor.o...
#32462021年1月23日作者 ThetripGr2 个回答
我想创建一个新的自定义特性来使用,它包含颜色选择器的输入和一个复选框,这样最终结果要么是从勾选的复选框中获得的预定义颜色,要么如果未选,则选择从选取器中选出颜色。这对我来说太具体了,所以我的问题是,创建新特质时是否可以使用已有的特质类型。我是直接从文档里说的,可能漏掉了什么,但没提到,所以我很好奇,提前谢谢大家!
artf
目前没有,我正在开发一个新的UI模块,可以重用和覆盖内部UI元素。
ClaudeCode
谢谢你举报,@ThetripGr。 关于可以在新的自定义特质中使用现有特质类型吗?这是个很好的问题。(例如,选色器)。GrapesJS 推荐的方法是使用事件驱动 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.l...