GrapesJS 问题

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

找到 3,464 个问题

#8522018年2月9日作者 JulyanoF2 个回答
0 个反应

如何更改<a>特质内容?

我重新声明了一种链接类型,像这样: 当我的按钮<a>('')被创建时,它的创建方式如下: '<a class=“btn botao-roxo”>Botão</a>' 我想知道如何更改这个(Botão)特质的内容。

JulyanoF

正是我想要的: [定义新的特质类型](https://github.com/artf/grapesjs/wiki/Traits#define-new-trait-type)

lock[bot]

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

#8512018年2月8日作者 maxtacco3 个回答
3 个反应

Promise 返回插件

你好,@artf, 我遇到过一个案例,自定义插件需要在进行任何初始化前检查用户权限。做检查的方法会返回一个Promise,所以我必须等它解决后才能做任何操作。不幸的是,这会导致编辑器渲染时出现 raise 状态,UI 会进入奇怪的状态。为了解决这个问题,我必须把'editor.autorender'设为false,然后在插件初始化后手动渲染编辑器。目前这样还可以,但如果我有多个自定义插件,依赖某些异步逻辑,我不太确定该如何处理这种情况。 所以,如果 GrapesJS 能检查注册插件是否返回 Promises,并且只有在所有 Promise 都解决后才渲染编辑器,那就太好了。 谢谢你,这个项目很棒。

nashton109

我也有类似的要求。如果对别人有帮助的话,我最后的解决方案是创建一个插件,然后加载我的其他插件; 编辑器配置只会引用一个插件,而该插件的插件选项会包含其他插件的加载选项。 插件代码; “''js 导出默认 Grapesjs.plugins.add(“async-plugins”, async(编辑器,opts) => { /*opts = {插件:[ ... ]pluginsOpts: { ... },渲染:真实 |false, // 如果未设置,则默认为true。onFin...

maxtacco

此外,这可能需要GrapesJS的初始化方法返回Promise,而非编辑器,但这仅限于存在任何返回Promise的插件。

artf

我必须先把'editor.autorender'设为false,然后在插件初始化后手动渲染编辑器。目前这样还行,但如果我有多个基于异步逻辑的自定义插件,我不太确定该如何处理这种情况 只需用一个变量作为标志,计入你的自定义执行逻辑,完成后你就可以渲染它。依我看,Promises的解决方案对这种东西来说简直让人不堪重负

#8502018年2月8日作者 austinbiggs3 个回答
0 个反应

:组件:移动事件

我想实现的目标: 我有一段代码需要在组件“丢弃”时运行。我把“dropped”加引号,因为TLB移动结束时它需要触发。 作为用户,如果我点击工具栏中的移动图标,完成组件移动后,我需要代码启动。我尝试了不少事件都没成功:stop:tlb-move、change:canvasOffset、focus和move-comp;但都没有成功。 我加载的编辑器内容包含一个Flexslider实例(它会创建额外的标记/元素样式),当用户移动Flexslider的容器时,这个实例就会失效。为了解决这个问题,我希望能立即重新初始化滑块,这样它就不会坏掉。 还有其他事件可以用来运行我的代码吗?我避免使用“component:updated”,因为它触发...

artf

你试过用 [Components-&-JS](https://github.com/artf/grapesjs/wiki/Components-&-JS)吗?

maxtacco

我也遇到同样的问题——我无法确定组件上的某个事件来监听移动结束时的信号。

maxtacco

所以,我唯一能让它合理运行的方法是监听组件模型的 init() 方法中触发的“selectComponent” 事件 https://github.com/artf/grapesjs/blob/b62e032b06f45382849b59e6a3f32049f0a021fc/src/commands/index.js#L168: “JavaScript editor.on('change:selectedComponent', (editor, model) => { 如果...

#8492018年2月8日作者 ajwootto3 个回答
1 个反应

能否卸载并摧毁编辑器实例或重新加载配置选项?

在我的使用场景中,我尝试动态更改存储并加载远程存储管理器使用的URL。据我所知,如果我直接更改配置,编辑器不会识别并使用任何更改,比如说, “编辑。Config.storageManager.storeUrl = 'blah' 编辑器已经初始化后。 为了解决这个问题,我尝试通过程序化移除目标DOM元素并调用初始化来卸载编辑器。然而,init 函数似乎创建了多个编辑器实例。我注意到GrapesJS.editors数组在跟踪这些实例,所以我尝试把它设置为空,希望实例能被垃圾回收。然而,即使在这种情况下,编辑器的事件处理程序似乎仍会在之后触发,从而保存错误的数据。 理想情况下,我希望能用某种解构器方法销毁编辑器(如果还没有的话),或者强...

maxtacco

您可以随时访问RemoteStorage并更新网址: “JavaScript const RemoteStorage = 编辑器。StorageManager.get('remote'); RemoteStorage.set('urlLoad', [urlLoad]); RemoteStorage.set('urlStore', [urlStore]); ```

arthuralmeidap

@ajwootto, 你可以创建一个自定义的远程存储,并在里面应用你自定义的保存/更新逻辑。 请查看这个链接:https://github.com/artf/grapesjs/wiki/API-Storage-Manager

ajwootto

这两个选项大概都行得通,但我忘了提,有些情况下我想用预先指定的组件和样式重新初始化编辑器(比如在初始化中传递),而不是从远程存储加载,但在其他情况下,我希望初始内容只来自远程存储。这种情况发生在同一页面上,编辑器的内容需要被调换。是不是有什么API我没注意到,可以做到这一点?

#8472018年2月8日作者 ghost2 个回答
1 个反应

我需要grapesjs-preset-webpage.js文件来理解编辑器选项。

如何将(grapesjs-preset-webpage.min.js文件)变成(grapesjs-preset-webpage.js)文件以理解编辑器选项。感谢你所做的精彩工作和帮助。

arthuralmeidap

去 GitHub 上的 Grapesjs-preset-web page 仓库,查看源代码。 在那里你可以查看所有代码,确认你需要什么。 回购:https://github.com/artf/grapesjs-preset-webpage

lock[bot]

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

#8462018年2月7日作者 davidherlopgt3 个回答
0 个反应

当我尝试向表格添加行时出现错误

大家好 我开始使用 Grapesjs,遇到了一个问题,我尝试添加三个新命令来创建表格,添加行和单元格,表格运行良好,但当我向表格添加行时,会出现这个错误:“目标位置无效:找不到目标集合,目标不可丢弃,接受[未定义],组件不可拖拽, 被[未定义]接受“,有人能帮帮我吗?这是我的代码: 感谢你的帮助 '<script type=“text/javascript”> VAR Editor = Grapesjs.init({ 身高:“100%”, 展示偏移集:1, noticeOnUnload: 0, storageManager: {autoload: 0}, 容器:“#gjs”, fromElement: true, 插件: ['GJ...

davidherlopgt

我忘了我用的版本是 Grapesjs - 0.13.5 <link rel=“stylesheet” href=“Config/grapesjs-dev/dist/css/grapes.min.css”> <link rel=“stylesheet” href=“Config/grapesjs-preset-webpage-master/dist/grapesjs-preset-webpage.min.css”/> <script src=“Config/grapesjs-...

artf

@davidherlopgt 你试过用[内置表组件](https://github.com/artf/grapesjs/tree/dev/src/dom_components/model)而不是扩展它们吗? 顺便说一句,请制作一个现场演示

davidherlopgt

你好,artf,谢谢你的回答,我尝试用table组件,我可以在标题和正体中添加一个行和一个单元的Table,也许缺点是如果我把头的行颜色改成了,正体也会变,所以我必须把类从正文行移除,这样它才不会受到影响 我会按你要求添加现场演示 [grapesjslivedemo.zip](https://github.com/artf/grapesjs/files/1707098/grapesjslivedemo.zip)

#8452018年2月7日作者 chiqui3d3 个回答
1 个反应

无法选择 Iframe

我创建了一种新的组件类型,一个通用iframe,避免选择地图,但当我尝试在画布中选择它以显示定点时,我无法实现。 这是组件代码。

artf

嘿,@chiqui3d试着从[ComponentMapView](https://github.com/artf/grapesjs/blob/dev/src/dom_components/view/ComponentMapView.js)复制view逻辑。基本上你无法选择它,因为里面的所有元素都和iframe元素重叠(iframe里的元素不在编辑器的范围之外)。 正如你从地图上看到的,基本上你必须把“iframe”包裹在“div”里,并通过“gjs-no-pointer”类...

chiqui3d

好的,但那样我就永远无法编辑之前创建的 iframe src,或者我可以做的是创建一个 div 包络,在视图加载时使用编辑器,针对那些不是从 grapesjs 创建的 iframe 元素,对吧? 谢谢@artf

lock[bot]

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

#8442018年2月7日作者 YeungLong1 个回答
0 个反应

Grapesjs中能否插入iView-UI组件?

警告 请阅读并遵循接下来的五个步骤,然后在发布问题前删除它们遵守贡献指南 https://github.com/artf/grapesjs/blob/master/CONTRIBUTING.md仅将GitHub Issues用于BUG、功能请求或问题。在问题标题前加上上下文,例如:“[虫子]:.......'先快速搜索一下,看看有没有人没开同样的问题不要要求为你创建示例或代码,先阅读文档和API,然后你可以发布你尝试过的(我们希望看到你的代码)以及你无法实现的所有相关陈述/问题都必须填写/回答,否则问题可能已结束你正在提交一个漏洞你用的是最新版本吗(旧版本不支持)?如果不确定,在控制台输入“grapesjs.version”并按回...

lock[bot]

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

#8432018年2月6日作者 arthuralmeidap3 个回答
0 个反应

CssComposer - 移除未使用的类

你好@artf, 我用 grapesjs-preset-newsletter 导入一个 html,里面有 '' 标签里有一些 css 类<style>。 导入后,当我调用“editor.getCss()”时,之前添加的一些类现在缺失了。 我检查过那些CSS类在任何地方都没被使用过。 问:CssComposer模块会移除未使用的css类吗?

artf

问答:CssComposer 模块会移除未使用的 CSS 类吗? 没错

arthuralmeidap

不错,谢谢!

lock[bot]

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

#8422018年2月6日作者 Deepak8133 个回答
0 个反应

我们如何使用 editor.getSelected().set('attributes',array value)来设置数组

你好,@artf, 我们如何使用 editor.getSelected().set('attributes',array value)来设置数组值; 如果我们用同样的代码尝试这样做,它会在属性中插入NaN。

arthuralmeidap

@Deepak813, 你应遵循以下语法之一:'editor.getSelected().set({标题:“March 20”,内容:“在他眼中她掩盖了......”});' ->用于多个属性。你发送一个物体'editor.getSelected().set(“title”, “March 20”);' -> 用于特定属性

artf

如何使用editor.getSelected().set('attributes',array value)设置数组值; 你不能在“属性”属性上设置数组,应该把它当成一个对象。 我建议使用更具体的方法,比如“model.setAttributes({ title: '' })”或“addAttributes({ ... })`

lock[bot]

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

浏览所有主题