GrapesJS 问题

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

找到 3,464 个问题

#4942017年11月8日作者 z-vr3 个回答
0 个反应

将模块作为组件在程序上放置

我创建了一个自定义类型和一个块 “''js DomComponents.addType('MyComponent', { ... }); BlockManager.add('Component', { content: { type: 'MyComponent' } }); ``` 能否通过名称或其他方式将其插入“DomComponents”?我不想每次都手动拖放方块。谢谢。

z-vr

哦,我找到了怎么做的——通过 'editor.addComponents({ 类型: 'MyComponent' })'。有没有办法通过 CSS 选择器把它插入到特定元素中? 找到了这段片段,但我该如何找到正确的索引? “''js editor.getComponents().add('<div>Text</div>', {at: index}); ```

z-vr

好的,我做的是 “''js export default function iterateChildren(components, fn) { components.each((model) => { fn(模型); const childComps = model.get('components'); iterateChildren(childComps, fn); }); } export function findModels(components, selector...

artf

你实际上可以用“view.$el.data('model')”从现金元素实例获取模型,所以你可能用更少的代码就能实现 “''js wrapper.view.$el.find('#hero .text').each((el, i, $el) => console.log($el.data('model')) ) ```

#4932017年11月8日作者 bungambohlah3 个回答
0 个反应

我可以从块状API动态设置内容吗?

你好,@artf,非常棒的网页构建框架,继续保持 :+1: 代码: “JavaScript ... blockManager.add('dynamic-nav', { 标签:“动态导航”, 属性:{ 类别:“Fa fa-省略号-h”, 标题:“插入导航动态菜单” }, 分类:“分区”, 内容: '<ul class=“hide-on-med-and-down” data-gjs-type=“navigation” data-section-type=“navigation”> <li> <a href=“page1.html”>第1页</a> </li> <li> <a href=“page2.html”>第2页</a> </li...

artf

你可以通过这种方式更新该区块的内容 “''js const dblock = blockManager.get('dynamic-nav'); dblock.set('content', '<ul>...'); ```

bungambohlah

哦,我明白了,非常感谢@artf

bungambohlah

你好,@artf我遇到问题,我的动态导航模块现在能用了,但当我给该组件输入某个脚本时,它会给我一个错误“意外标识符”。我可以纠正一下吗?如果没有,请纠正我,非常感谢 这就是我的剧本: “JavaScript ... 动态导航 blockManager.add('dynamic-nav', { 标签:“动态导航”, 属性:{ 类别:“Fa fa-省略号-h”, 标题:“插入导航动态菜单” }, 分类:“分区”, 内容:{ 脚本:函数 () { var contentDynam...

#4922017年11月8日作者 sarathksasi3 个回答
2 个反应

在文本中的光标位置插入文本

你好, 我们正在评估GrapesJS是否符合要求。作为评估的一部分,我创建了自定义命令“插入占位符”,它的作用(我计划做的)是当选择文本时,当我点击这个命令时,它应该会在选定的光标位置插入文本。 最初我就是这么做的 var existingData = selectedComponent.view.el.firstChild.data; var placeHolderData = '[[1# 占位符名称]]'; existingData = existingData + “ ”+占位数据; console.log(“现有数据”,现有数据); selectComponent.set('content', existingData);...

mathieuk

与#481号的复制品

sarathksasi

谢谢

edwardjiawei

类似于我在[grapesjs-plugin-customrte](https://github.com/edwardjiawei/grapesjs-plugin-customrte/tree/master/src/main.js)中做的。但我并不认为我的代码是基于它,因为它很混乱。 你应该能在我的仓库里用 design, html 测试代码。 还可以为实现 el.contentEditable 设置较低优先级, 这样占位符文本就无法编辑。[#287](https://git...

#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

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

浏览所有主题