GrapesJS 问题

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

找到 3,464 个问题

#22082019年8月21日作者 zgeist2 个回答
1 个反应

按钮激活状态

按钮激活状态出现问题 ![0f3a046be015a260dfcdd6069a8a378e](https://user-images.githubusercontent.com/6919961/63423129-4eaf1d80-c414-11e9-9f8c-efc9e7a42a55.gif) 如果按钮已经激活,点击激活状态时会保持状态未重置 这可能逻辑错了 https://github.com/artf/grapesjs/blob/dev/src/panels/view/ButtonView.js#L142 我该如何推广“toogleActive”方法?

kerryj89

我也遇到同样的问题,链接@artf提到虽然一开始是激活状态,但点击其他设备时就停止工作了。 编辑:@zgeist 在这里修正了 https://github.com/artf/grapesjs/issues/3305#issuecomment-808323277

artf

我觉得问题出在网页预设(没时间更新),但和入门里描述的属性一样:https://grapesjs.com/docs/getting-started.html#style-manager 你必须添加带有“togglable: false”属性的按钮

#22072019年8月20日作者 niisar3 个回答
0 个反应

:如果在顶部/左侧有空位,Mode Absolute 无法拖动组件

给定以下代码示例...... “'' HTML <div style=“height: 100px;”> 顶部或左侧有空隙 </div> <div id=“gjs”> <p style=“填充:25px”> 赫斯德洛世界!!</p> </div> 导致无法通过面板上的拖曳图标拖放元素来修正位置。 ![图片](https://user-images.githubusercontent.com/6368685/63374396-57b5d580-c3a7-11e9-9628-9d2943857f76.png) 请参见Fiddle演示...... https://jsfiddle.net/niisar/zc51gtnv/

pouyamiralayi

这只是拖拽图标的,对吧?手动拖拽没问题。 使用拖曳图标,它会从顶部重置元素的位置,看起来就是这样。

niisar

这只是拖曳图标的,对吧?手动拖拽没问题。使用拖曳图标,它会像看起来一样重置元素的位置。 是的,这只适用于拖曳图标。

artf

是的,问题在于根据上下文的不同事件对象。当你触发对组件本身的拖拽时,事件在iframe的上下文中(因为点击的元素在iframe中),但组件的按钮在iframe之外,所以事件的上下文是原始的“窗口”。

#22062019年8月20日作者 WebEtSolutions1 个回答
0 个反应

样式值变为“未定义!重要”

嗨! 当我输入一个重要风格的房产时,这几乎没问题。当我清除字段的值(比如颜色类型)时,值被设置为“未定义!重要”。 要解决这个问题,在 Property.getFullValue 上,你必须先检查值,然后再添加“!important”: 如果(value !== 未定义 & & this.get('important')) { value = '${value} !important'; } 再见!

artf

谢谢@WebEtSolutions下次版本会修复的

#22052019年8月20日作者 inaLar3 个回答
2 个反应

保存后文本组件转换为 Box

我有一个自定义组件,当我把它放进一个文本组件里(我用的是扩展原始文本组件的自定义文本组件)时,保存并重新加载HTML/CSS后,我遇到了同样的问题——文本组件会转换成一个Box。我用自定义属性,但无论哪个属性,组件类型都会从文本转换成默认。 附言:自定义组件在双击后可以编辑。 保存前: '<div data-gjs-type=“text” data-highlightable=“1” data-text-extended=“Text”>插入 <span data-gjs-type=“custom-type” contenteditable=“false” data-gjs-textable=“true” >自定义合成测试</spa...

inaLar

嗨!这些信息非常有用——关于通过这种方式访问模型而不是通过DOM的。 我会去探索。我仍然不明白为什么当我把自定义组件放进文本组件时,gjs-comp-selected 类却会被存储在 innerHTML 里。也许这只是被发现的行为。 另外,我正在考虑移除自定义组件中的类属性(gjs-comp-selected),该组件的模型内为 onRender()。但区分父母和孩子的模型对我来说还是个新领域:)

inaLar

@pouyamiralayi,是的,我做过完全一样的操作,效果很好,但我也设法在扩展文本组件的isComponent中使用了tagName(div, p, ... ),这在我这里也有效。 我现在就结束这个问题。 非常感谢你提供的所有内文! 干杯

pouyamiralayi

你是在插件里定义自定义类型吗?

#22042019年8月20日作者 pouyamiralayi1 个回答
1 个反应

Vue生成组件的自定义处理器回调

你好!我最近遇到了一个新推出的超棒功能[这里](https://github.com/artf/grapesjs/blob/c1fb490a73adefb0fa073f37bef4e6178d9321a8/src/dom_components/config/config.js#L40-L58) 在这里你可以对React生成的元素进行处理,非常棒。 目前我正在开发一些第三方组件,这些组件使用Vue作为编译器。 我目前采用的方法是如下,效果良好: “''js 脚本:函数 () { const appl = new Vue({ El:“#ccid” 数据:{ 信息:“按钮” }, 模板:“<q-btn>{{消息}}</q-btn>' }...

artf

嗯,我可能没描述得对,尤其是这个: “''js 默认情况下,GrapesJS 已经支持 React 元素 所以这个功能的目的只是理解由JSX生成的对象并将其转换为GrapesJS组件定义对象,而不是用来理解React/Vue组件本身 在你的例子中,你成功加载了一个Vue组件,但无法编辑它,因为它不是编辑器的一部分,更像是编辑器的静态内容。你可能需要一些自定义CSS来让这些按钮扩展到包装器。

#22032019年8月19日作者 benvmatheson2 个回答
1 个反应

可能的配置膨胀

我们遇到过Grapes元数据(组件、样式等)增长到导致我们这边出现问题的问题。检查后我们发现 HTML/CSS 的葡萄输出不到 5k,但 Components/Style 对象的存储速度是 ~190k。 在研究组件后,我注意到大多数数据都是带有空值/默认值的键(“”、[]、0等)。为了节省空间,是否值得去掉这些值,并且在葡萄中更改逻辑,假设未定义属性代表空值或默认值?

devgru

考虑使用“avoidDefaults”标志,它通过移除这些默认值来减少配置占用: https://github.com/artf/grapesjs/blob/c1fb490a73adefb0fa073f37bef4e6178d9321a8/src/editor/config/config.js#L131

artf

考虑使用avoidDefaults标志,它通过移除这些默认值来减少配置占用 正确

#22022019年8月19日作者 Chaitwo2 个回答
3 个反应

预览时移除图片,在编辑器中显示

嘿,@artf我需要帮忙解决我遇到的一个挑战 我想在预览模式下隐藏带有src为空的图片,以特定类别图片为主,并在编辑器模式下显示。 我试过了,但不知为何似乎没用 谢谢, 柴图

artf

你不能只做 '$('.img[src=“”]')' GrapesJS 组件不在同一上下文中,它们被放在一个 iframe 里,所以你必须使用那个 iframe 里的“文档”,比如说, “''js 编辑。Canvas.getDocument().querySelectorAll('.img[src=“]') ```

pouyamiralayi

你的选拔者是正确的吗?据我所知,葡萄会设置“background-image:url()”而不是 src。

#22012019年8月18日作者 grant0073 个回答
1 个反应

:如果设备高度超过可用高度,允许画布滚动

给定以下代码示例...... 如果编辑器显示区域低于设备指定的高度,就无法滚动到画布顶部。 请参见Fiddle演示...... https://jsfiddle.net/gstone007/0vq3o2jf/1/

ghost

只需在 .gjs-cv-canvas__frames 中添加样式 'overflow: auto'

artf

在进一步了解这个问题后,我建议不要用设备面板超过画布高度。不幸的是,目前让画布的任何部分可滚动(@TheDiamondKing建议的解决方案)会导致意想不到的行为。 我正在做框架和画布的重构,所以可能会有不同的解决办法

contentfree

@artf 你的评论还成立吗?添加“溢出:自动”(尤其是在“设计模式”/“绝对模式”画布中)仍然会引起问题吗?

#22002019年8月17日作者 GoodPHP3 个回答
3 个反应

自定义你的GrapesJS

你好, 我愿意为你定制GrapesJS编辑器,满足任何效果。 我有大约3年的GrapesJS经验和9年的网页开发经验。 我的作品示例: https://monosnap.com/file/MnXzYlIK5UVe3oVr8dqveDzZG7PVU8 视频: https://monosnap.com/file/Lw0E8VmGdsyWUGe8jsRII6i66P1urm 电子邮件:[email protected] Skype:maxim2356 此致敬礼:)

smik3

哦,我知道!我指的是,如果你尝试使用Dist的索引/块/组件文件(即未压缩且更易操作),它们在Node/webpack环境外是无法工作的。 2019年8月19日20:18,Pouya Miralayi<[email protected]>写道: @smik3你不需要节点环境来定义插件。 grapesjs.plugins.add('your-plugin', editor => { your stuff } 这将定义行为,并且你有编辑器实例作为参数可用。 然后像...

inaLar

@smik3,这并不是一个好做法,因为以后更新GrapesJS会变得不便。你最好把 js 函数里的自定义代码和你需要用作插件的代码分开,然后加载。或者只用Node编译插件,然后把plugin-name.min.js投入生产环境。 'var editor = grapesjs.init({ ... 插件:[yourCustomFunction], ... }) `

Chaitwo

嘿,@GoodPHP我需要帮忙解决我一直面临的一个挑战 我想在预览模式下隐藏src为空的图片,并在编辑器模式下显示,即停止:预览。 我试过了,但不知为何似乎没用 谢谢, 柴图

浏览所有主题