GrapesJS 问题

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

找到 1,399 个问题

🔍 outdated
#4912017年11月8日作者 ryandeba3 个回答
3 个反应

资产管理人替代

有没有可能用完全不同的产品替代资产管理公司(比如CKFinder - https://ckeditor.com/ckeditor-4/ckfinder/)?或者,是否有可能在葡萄之外推出包含的资产管理公司?

artf

嗯,我以前没试过,但我觉得你只需要替换[当前命令](https://github.com/artf/grapesjs/blob/dev/src/commands/view/OpenAssets.js)就能实现。 “''js 编辑。Commands.add('open-assets', { run(editor) { ... } }) ``` 这就是命令的名称 https://github.com/artf/grapesjs/blob/e921165a8d681b5d1056...

ryandeba

谢谢@artf!根据你的建议,我很快就让它正常工作了。

lock[bot]

由于关闭后没有近期活动,该帖子已被自动锁定。请为相关漏洞开启新一期。

#4902017年11月8日作者 ryandeba3 个回答
0 个反应

防止修改特定图像组件

我有一个用例,想让某些特定组件完全锁定(比如不可调整大小、不可拖拽、不可复制、不可移除等)。我大致上能正常工作,但图片出现问题——我似乎无法阻止双击功能,该功能打开资产管理器模式并允许更改图片源。有没有可能阻止双击图片时打开该模态? 我尝试将组件的“editable”属性设置为false 'component.set({editable: false});',但似乎没有达到预期的效果。事实上,看起来所有图片组件默认的可编辑属性都是假的,但我也可能错了。如果你愿意,我很乐意自己开发这个功能,也可以提交拉取请求。 谢谢!

artf

是的,你说得对,我只用“可编辑”来描述文本组件,但你问的其实很有道理。我很乐意接受你的永久居民。 你应该在模型里加“可编辑:真实”https://github.com/artf/grapesjs/blob/dev/src/domcomponents/model/ComponentImage.js 然后在这里查看视图 https://github.com/artf/grapesjs/blob/dev/src/domcomponents/view/ComponentImageV...

ryandeba

谢谢@artf!这是拉取请求:https://github.com/artf/grapesjs/pull/496

artf

合并 https://github.com/artf/grapesjs/pull/496 👍

#4882017年11月7日作者 richieteh943 个回答
4 个反应

Editor.setComponents 自动生成不需要的 CSS

我用的是#324提到的html和css编辑器。 编辑完 HTML 和 CSS 后,它会生成一个 CSS,我怀疑是 editor.setComponents() 不确定这是个bug还是正常现象。 Grapesjs 版本 - 0.12.8 Grapesjs preset - GJS-preset-newsletter 0.2.15

thecodefish

在我的使用场景中,我不断在编辑器中获取和设置 html/css,我发现它最终会重复“默认”样式(见上图中的 * 和正体样式——它们出现两次)。 我通过确保在(重新)重置前清除 CSS 来解决这个问题——大致如下: “'' js 编辑。CssComposer.getAll().reset(); editor.setComponents(components); editor.setStyle(css); ```

thecodefish

@chiqui3d我认为每当你需要从外部来源修改CSS时,你可能先想重置CSS作曲器。所以如果你的代码里有类似“editor.setStyle(css);”的设置,你可能需要调用“editor.CssComposer.getAll().reset();' 首先。

artf

首先,更新你的葡萄版本,然后更具体地说明你的更改。你改了什么?你说的unwanted css是什么意思?

#4862017年11月6日作者 krunal0392 个回答
0 个反应

自定义组件不可编辑,而且特性更新后画布也不会更新

下面是我用于特质和自定义部分的代码,但通过块添加组件后,无法编辑文本或特质更新无法更新画布。我有扩展的“文本”,而且用editor.html()时也拿不到html,点击图片时也不会打开资产管理器。我肯定是遗漏了什么。 “''js var defaultType = comps.getType('text'); var defaultModel = defaultType.model; var defaultView = defaultType.view; createSectionComp(comps, defaultModel, defaultView) function createSectionComp(comps, def...

artf

在你的模型中,你不需要定义“data-gjs-*”,它只在从HTML导入时才有意义,所以请去除这个: “''js attributes: { 'data-gjs-type': 'cust-section', }, 你不能编辑这个 “''js var rowDiv = document.createElement('section'); rowDiv.className = “row”; rowDiv.innerHTML = “示例文本请在此更改”; ``` 因为它只是一个普...

lock[bot]

由于关闭后没有近期活动,该帖子已被自动锁定。请为相关漏洞开启新一期。

#4852017年11月6日作者 YairHadari2 个回答
0 个反应

翻译选项

你好, 有没有翻译系统选项? 此致, 亚伊尔

artf

讨论过好几次(比如#26) 下次,尝试在打开新期之前先搜索一下(比如“翻译”已经足够了) 谢谢

lock[bot]

由于关闭后没有近期活动,该帖子已被自动锁定。请为相关漏洞开启新一期。

#4842017年11月5日作者 roytang3 个回答
1 个反应

我能限制可以放入容器的方块吗?

我的目的是创建一个块,只允许放置图像组件(我用的是 grapes-blocks-basic 的默认组件)在里面。 我有以下测试代码: 但是,当我运行上述代码时,发生的情况是我无法在图像容器中放置图像组件。绿色下拉光标只会出现在容器的顶部、底部和侧面,但不会出现在容器内部。实际上,我不能把任何组件放进去。 我有点假设“droppable”属性可以和这里示例中的“draggable”属性一样工作:https://github.com/artf/grapesjs/wiki/Components。Component.js的来源写道: 所以看起来它们应该是一样的。我是不是哪里做错了? 是不是反过来做更好?比如创建一个自定义图像组件,并限制其...

roytang

这个修复方法有效。谢谢!

artf

@roytang你的代码看起来没问题,可能只是你的组件“空得太多”,鼠标指针进不去。试着加一点缓冲,看看效果如何 “''js 内容:'<div class=“image-container” style=“padding:20px”></div>', ```

roytang

嗯。我用的是宽高100px的图片容器样式。另外,移除扩展模型中的可丢弃属性后,我可以在模型里放进文本和图片。

#4822017年11月3日作者 krunal0393 个回答
0 个反应

自定义组件中的默认资产管理器

我正在为下面的模板创建自定义组件,我们希望用户输入文本、链接、悬停文本并选择图片,想用默认资产管理器选择图片,但不确定如何在自定义组件中获得选中的图片?以下是我使用的代码 view: defaultType.view.extend({ init() { this.listenTo(this.model, 'active', this.doStuff);收听活动 }, doStuff() { editor.runCommand('open-assets', { 目标:editor.getSelected() }); } }); ![样本](https://user-images.githubusercontent.com/11716...

artf

@krunal039 为什么需要自定义组件?你的模板看起来挺简单的,那就用一个简单的方块怎么样? “''js 编辑。BlockManager.add('your-block', { 标签:“自定义块”, 内容:'<div class=“row-class”> <div class=“column-class”> <img src=“...” /> </div> ... '</div> }) ```

krunal039

@artf感谢回复,我们需要用户输入悬停文字、背景图片和文本,底部有超链接,想用自定义组件,但如果能提示用户输入,我可以直接创建,直接屏蔽,能请你指点我正确的方向吗?我已经挣扎了4-5天吗?

artf

试着用模板创建一个块,拖入画布里,你就能更改所有这些内容

#4782017年11月2日作者 HarshOB3 个回答
0 个反应

如何在同一个标签下制作两个文本框?

你好, 是否可以在同一个标签下创建两个文本框?如果可能,我该如何创造它? 谢谢。

artf

@HarshOB我不明白问题出在哪里。你试过直接拖动另一个输入吗?

HarshOB

是的,我试过了,但没用。比如我想在一个标签前面放两个文本框,就像下面图片所示,我想在同一标签“TOKEN”下做两个文本框。 ![截图来自2017-11-09 17-13-33](https://user-images.githubusercontent.com/28950214/32606056-d6b513ba-c579-11e7-8ceb-bf19d6730084.png)

artf

#477的复制品

#4772017年11月2日作者 HarshOB3 个回答
0 个反应

默认情况下禁用特质,之前特质变更时启用下一个特质。

你好, 所以,我想在组件设置中定义两个特质。第一个是CheckBox,另一个是TextBox(可以有多个)。我将定义第一个复选框,即多个输入字段。当基础上勾选/勾选下一个复选框/输入字段(默认禁用)时,将启用。我该如何实现这样的目标? 谢谢。

artf

@HarshOB 你查过维基里关于[特质](https://github.com/artf/grapesjs/wiki/Traits)的资料吗?我在那里解释了如何添加复选框输入以及如何应对它们的变化。如果不清楚,你能指出我应该补充什么吗?

HarshOB

这里我再用截图解释一次。你可以看到,在一个复选框下有两个文本字段。所以,当我点击复选框/勾选那个复选框时,这两个输入字段会被启用(我希望它第一次加载时能禁用)。 ![截图来自2017-11-09 17-13-33](https://user-images.githubusercontent.com/28950214/32605877-2f792bfe-c579-11e7-8db9-1efec4a6eee5.png)

artf

不,这不是内置特征能做到的,但你可以通过扩展[默认的](https://github.com/artf/grapesjs/blob/dev/src/trait_manager/view/TraitView.js)来定义自己的类型(甚至可以包含所有输入)

#4762017年11月1日作者 Geczy3 个回答
0 个反应

跨度被剥离——不良行为

例如,如果我通过 grapesjs import 命令导入 '<p><span style=“font-size:50px;”>hi</span></p>',以下内容被设置为组件: '<p data-highlightable=“1”>hi</p>'。失去了我的风格

Geczy

你可以在 http://grapesjs.com/demo-newsletter-editor.html 上复制 我的问题在这里有描述 https://github.com/artf/grapesjs/issues/341 https://github.com/artf/grapesjs/blob/dev/src/parser/model/ParserHtml.js#L145

Geczy

就我而言,最好不要去掉“<span>',而是保留在HTML里。为什么要移除它? 要注意以下情况: '''html <p style=“font-size:12px;”><span style=“font-size:50px;”>嗨</span>,嘿</p> ``` 解析器之后的预期输出应该是什么? Hi应该是50像素,嘿应该是12像素。这就是为什么HTML解析器不应该移除跨度

artf

我同意你的看法,Matt,确实,正如前面提到的,我也想把它移除,但需要找时间测试,确保它没有破坏其他东西。 我以#341为结尾

浏览所有主题