GrapesJS 问题

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

找到 23 个问题

🔍 inactive
#29722020年8月25日作者 kuhelbeher3 个回答
0 个反应

成就:禁用画布上的脚本

你好,首先感谢你提供这么棒的工具。 在我的项目中,我遇到了一个需要在编辑器里禁用脚本的问题。我发现这个问题有两个类似的问题——https://github.com/artf/grapesjs/issues/2046 https://github.com/artf/grapesjs/issues/2814。所以这个问题很常见,也许把这个功能加到下一个版本会更好? https://github.com/artf/grapesjs/issues/2046 期中@sdrebel提到他正在移除Canvas中的脚本,只在预览模式下运行。有人能提示我怎么做吗?我没找到如何移除和设置模板的 js 的方法。

RJCAM

你好@kuhelbeher我也还在努力实现这个目标,但这里有个建议可以帮助我们实现。 如果我找到办法,我会在这里发帖。 参见本期 #2772

kuhelbeher

@RJCAM谢谢你的建议,我试过了,但这种方法的问题是它禁用的是组件脚本,而不是整个模板。

artf

一旦编辑器及其组件加载完成,就很难考虑禁用 JS,可以考虑用自定义脚本绑定事件的组件(甚至用外部插件)。 唯一可能的方法是在更新某个配置标志(例如通过“Canvas.enableScripts(false)”)后,重新加载整个帧(当前组件状态),并阻止它们附加[这里](https://github.com/artf/grapesjs/blob/29abac0d77e2dda681dce10be3d7fa92b80fd5bb/src/canvas/view/CanvasVie...

#27462020年4月29日作者 NorthstarTech3 个回答
2 个反应

鼠标悬停在文本工具栏 ckeditor/richtext 编辑器上重叠

当ckeditor/richtext工具栏打开时。鼠标悬停在元素上,边框线重叠工具栏。边界重叠。

adamwpe

你能举个例子吗?理想情况下使用 https://jsfiddle.net/szLp8h4n

bgrand-ch

你好, 对于未来的问题或技术问题(非漏洞),GitHub的[讨论](https://github.com/artf/grapesjs/discussions)标签是最佳选择。 如果问题已解决,请关闭,或在[讨论](https://github.com/artf/grapesjs/discussions)->[问答](https://github.com/artf/grapesjs/discussions/categories/q-a)类别写一条详细的新消息(并关闭本期)。...

sanjaysamcom

如何解决一个部分到另一个部分的拖拽重叠问题?

#24932020年1月7日作者 andrewryan19062 个回答
0 个反应

将组件拖曳到画布时数组长度无效

不太清楚为什么, 但突然间,当我开始把组件拖到画布上时,会出现这个问题: ![图片](https://user-images.githubusercontent.com/37671394/71865841-2fb6dc80-30d2-11ea-8fa2-d43af2863f70.png) 这种情况似乎发生在我编辑模板、保存后重新加载时。当我尝试拖动新组件到页面的最后一个元素时,似乎也会出现这种情况;如果我尝试在模板内的DIV容器内拖动并放入元素,那就没问题。但如果我尝试在模板开头拖动它,我会看到我在#2494中引用的重复项目。我觉得这和这有关;某个地方存在一个不该是空的空数组。 不打算在应用之外搭建一个完整的沙盒来复现,有没有什么...

andrewryan1906

还有另一个线索......一旦画布“坏掉”(我可以通过刷新页面并强制加载来稳定地解决......这种情况在新模板上不会发生,只有从自定义存储加载模板时才会出现,但我确认 JSON 没有损坏),如果我把一个组件拖到画布上,它会生成该组件的“幽灵”副本,尽管我没有丢弃它。每次我悬停到画布顶部,都会生成一个新的幽灵组件——同样,尽管我没有掉落。下方图片: ![图片](https://user-images.githubusercontent.com/37671394/718687...

andrewryan1906

好的, 我设法把grapes.js放进了我的Angular项目里,并引用了它而不是缩小版,这样我就能更深入了解到底发生了什么。问题似乎出在Sorter.js。findPosition 方法负责确定光标悬停在哪个元素上。不知为何,这行代码: 正在回归,NaN。这会在整个代码中进行欺骗,导致数组长度无效。 当我看调光灯时,它是一个二维数组,包含所有——我猜?- 画布上组件的尺寸,我看到: ![图片](https://user-images.githubusercontent.c...

#23832019年11月6日作者 smik33 个回答
3 个反应

自定义组件在第一次添加时无法通过样式。

Fiddle复制问题:https://jsfiddle.net/gd8mo3e4/1/ 我有一个自定义组件用于创建PDF文档画廊。有一个自定义资产管理器,当块被放入编辑器时会打开,允许你选择PDF,然后更改缩略图。 我遇到的问题是,在新页面重新加载时,第一次插入新的PDF块时,模型里没有导入样式。如果你删除它并添加新块,它就会生效。 你可以通过创建列,然后把一个 PDF 块放进去来看到这一点。

smik3

它放入编辑器的缩略图/图片应该会根据容器进行缩放。我看到第一次加载时大小是原始大小,之后所有的方块添加都会正确对应它们被放入的列。如果你看导出代码,还会发现第一次放入一个块时,它不会更新CSS。后续方块会添加

smik3

有几张截图展示了我看到的行为...... <img width=“1021” alt=“截图 2019-11-06 11 32 16” src=“https://user-images.githubusercontent.com/19346508/68294968-394ba600-0089-11ea-941a-e441d3469c6f.png”> <img width=“1003” alt=“截图 2019-11-06 11 32 33” src=“https://use...

artf

我猜这和这个,可能还有这个@artf 嗯,不太行 把'modelThumbElement.setAttributes({“data-gallery”:fileName});改成“addAttributes”似乎能解决问题,但我不确定到底发生了什么(我本以为“错误”的行为会一直存在,而不仅仅是第一次)。我稍后会调查这件事

#23372019年10月17日作者 navewi3 个回答
0 个反应

删除默认样式无效

你好, 我正在尝试删除一些方块的默认样式。我把改动的所有内容都写进了一个插件里。 我用这个函数更新了例如文本组件的样式默认值: “编辑。DomComponents.addType(.....)` 此处可见:https://grapesjs.com/docs/modules/Components.html#update-component-type 我理解错了吗? 另外,我也搞不清楚样式默认值写在哪里,当我在Text.js测试时更改样式默认值,编辑器里也没有任何变化。 哦,我用的是mjml插件,可能这里的问题有误,抱歉。 编辑:好的,我发现“style”可行,但“style-default”不行: ![图片](https://use...

pouyamiralayi

你好!你试过用[setStyle](https://github.com/artf/grapesjs/blob/7d1dff957d62bbbaefd75b042e4092ae6f28e3d1/src/dom_components/model/Component.js#L403)吗? 干杯。

artf

我本以为类似的做法应该能用(更新“style-default”) “''js 编辑。DomComponents.addType('mj-text', { 型号:{ 默认值:{ 'style-default': { 你的新风格...... } } } }) ``` 确保在 mjml 插件之后加载你的插件

navewi

你好,@artf,谢谢你的回复。这正是我尝试过的同一个代码。如果我用“style”而不是“style-default”,这个方法就能正常使用。

#22142019年8月23日作者 Firefox20051 个回答
0 个反应

SVG Element 并不是真正的 SVGElement

行为 我用外部 Javascript 代码,根据属性动态替换一些 SVG 元素。JavaScript代码首先检查要验证的元素类型,确认它是一个像这样的SVGElement: 'document.querySelector('#someId') 实例of SVGElement' 代码在Firefox中返回True,但在Safari和Chrome中显示False,尽管我在Chrome属性标签页中确认它确实属于SVGElement类型。 我如何创建SVG元素 我尝试了不同的方法,但最终还是用了插件。 component.js “JavaScript domc.addType('myType', { isComponent: functi...

artf

该代码在 Firefox 中返回 True,但在 Safari 和 Chrome 中显示为 False,尽管我在 Chrome 属性选项卡中确认它确实属于 SVGE 类型。 奇怪,好像是铬的问题......

#22112019年8月22日作者 abozhinov3 个回答
0 个反应

如何为伪元素(:after 和 :before)设置样式

你好, 我在样式管理器里添加 STATE:before 和 :after,但所有样式都应用到组件上。

artf

你是指剪辑期间吗?你觉得取消选中组件会好吗?

abozhinov

是的,在剪辑过程中。我的想法是实现伪元素。当你选择组件选择状态,比如悬停,但设置为:after或:before。 问题是我需要在CSS规则中设置内容:'',所有样式都应用到主元素上。

artf

好的,但取消选中组件后,这个方法正确吗?

#21852019年8月7日作者 vegadesign1 个回答
1 个反应

用SVG图标代替PNG

你好。 应用程序中有一些PNG图标:flex-just-start.pngflex-al-end.pngflex-just-sp-bet.pngflex-dir-col.pngflex-just-sp-ar.pngflex-al-start.pngflex-dir-row.pngflex-just-end.pngflex-just-sp-cent.pngflex-dir-col-rev.pngflex-al-str.pngflex-al-center.pngflex-dir-row-rev.png 我也做过类似的,但用SVG格式。请参见[附加文件夹](https://drive.google.com/open?id=189-erU...

artf

哇,非常感谢@vegadesign非常感激。我们实际上只在演示([gh-pages](https://github.com/artf/grapesjs/tree/gh-pages)分支)中使用这些,链接如下: https://github.com/artf/grapesjs/blob/be39c6baf55f4e644b6bc8bbdd71ead71723dd6b/demo.html#L53-L91 我会尽快更换,但如果你能自己创造个人纪录,那将非常感激

#21542019年7月20日作者 adelliinaa3 个回答
8 个反应

自定义组件集成

你好! 我想用 Angular CLI 7 将一个自定义组件集成到 GrapesJS,但它无法渲染。 我的组件是建立在另一个开源组件之上的。当我想在任何 Angular 项目中包含它时,我会直接导入 typescript 文件中的依赖/库,并在 HTML 中导入组件本身(例如 <h2> <custom-comp> </custom-comp> </h2>)。 为了在 GrapesJS 中使用它,我最初创建了一个块管理器,并附加了我的自定义组件: VAR Editor = Grapesjs.init({...}); var blockManager = 编辑器。BlockManager; blockManager.add('cust...

artf

好的,但你打算怎么处理编辑器的输出(Angular组件)?我是说,你最后会怎么用它? 无论如何,我看到两种不同的处理方式:为每个组件创建自定义渲染(就是我用MJML做的那个概念)。这是最准确的方法,因为我应该能在画布上看到框架的具体组件(例如,如果渲染器使用相同的“编译器”,比如你的情况是Angular框架)。这可能不是最简单的方法,因为你必须对两个框架都有很好的了解(比如你这里是Angular和GrapesJS),但从长远来看,渲染器实现后可以毫无麻烦地集成新组件你可以创...

artf

@adelliinaa我们先从一个简单的问题开始,因为我不太明白,你想做什么样的编辑器?一个用于Angular组件的构建器?!?

adelliinaa

我想创建一个类似于你用MJML组件创建的表单构建器,但用Angular CLI代替JS。是的,我想集成在GrapesJS中的自定义组件也是用Angular构建的。

#21132019年7月3日作者 shvhh暂无回答
0 个反应

自定义专属功能请求

应该有功能可以从右边切换到左边工具栏我找不到任何选项可以添加属性,比如在表单时添加动作,对于表单元素添加名称,以及在点击操作时添加(如果可能的话)。

浏览所有主题