GrapesJS 问题

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

找到 3,464 个问题

#22862019年9月23日作者 Shah-ali1 个回答
1 个反应

导入带有JavaScript事件的HTML代码

'<table class=“table”><tr><td class=“cell”>你好,世界!</td></tr></table><details/open/ontoggle=alert(1)>' 尝试导入以上HTML代码。点击导入按钮后收到通知。我能在导入HTML时删除所有JavaScript事件吗? 请查看附上的截图。 ![截图(107)](https://user-images.githubusercontent.com/2025940/65405410-9a7d2a00-ddf9-11e9-9cd1-6a05a0199fa1.png) ![截图(108)(https://user-images.githubuserco...

pouyamiralayi

你好! 我认为当前的[自定义代码插件](https://github.com/artf/grapesjs-custom-code)中没有这个选项。 你可以修改的代码是[这里](https://github.com/artf/grapesjs-custom-code/blob/4011d40fc8b5ef8852d9c908e390c53f87d09b25/src/commands.js#L100) 请注意,这只是文本处理中搜索和替换“脚本”标签的情况。 干杯。

#22852019年9月22日作者 megarg2 个回答
2 个反应

不能添加新特质

我正在尝试添加一个新特征,但效果不好。我做了不少研究,尝试了多种方法,但似乎仍然没有效果。你能指点我可能做错的地方吗? 选项1: 选项2: 尝试程序化添加。我关注的是以下医生: https://grapesjs.com/docs/modules/Traits.html#add-traits-to-components 这个选项2会导致编译错误。

pouyamiralayi

你好!我看不出你的第一个方法有什么不起作用的理由! 你试过这个[one](https://github.com/artf/grapesjs/issues/2251#issuecomment-530587007)吗? 干杯。

megarg

现在这招管用了。原始代码正在运行。

#22842019年9月21日作者 benvmatheson1 个回答
0 个反应

一个组件取消的类别是否应该在其他组件上取消?

我不确定这是不是个bug,还是我只是误解了用法。 点击 component1 -> 添加 class1 --> 勾选 component1 上的 class1 勾选。 点击component2 ->添加class1 第一类已经被取消了。如果你点击勾选,再点击component1,class1的勾选现在也在component1上被选中了。 我不太明白勾选的具体作用。它应该让所有组件的职业都启用或禁用吗?

artf

不,它不是用来禁用组件上的类(那你得移除它),而是用来更改样式管理器中的选择器,这样你就可以更改需要样式的选项

#22832019年9月20日作者 gagan3481 个回答
0 个反应

我该如何在data-gjs-resizable属性中传递可调节大小的onMove函数

onStart 事件在创建组件时运行良好,但我想在创建块时添加它。这是我的代码: cont keyWidth = 'flex-base'; 一致性步 = 0.1; cont minDim = 1; const currentUnit = 1; const resizerRight = { TL: 0, tc: 0, tr: 0, cl: 0, bl: 0, br: 0, cr: 1, bc: 0, keyWidth, currentUnit, minDim, step } const attrsToString = attrs => { 一致性结果 = []; 对于(让 key in attrs) { 令value = attrs...

artf

你可以把“内容”写成[组件定义](https://grapesjs.com/docs/modules/Components.html#component-definition)来代替HTML字符串

#22822019年9月20日作者 pouyamiralayi3 个回答
6 个反应

:替换当前视图,用于核心编辑器的界面组件

你好!目前使用的Grapesjs结构基于利用backbonejs模型视图concept在Grapesjs生态系统内实现虚拟Dom。虚拟主导是一种极好的实践,具有广泛的应用和益处;但虚拟DOM的缺点是虚拟DOM和实际DOM itself之间的actual差距,这意味着使用虚拟DOM是一种性能牺牲,以实现Grapesjs、React、Vue等已经建立的模型视图架构。 基于GrapesJS的实时特性及其基于每次用户交互管理数千个模型对象的能力,在某些情况下,模型更新时性能被低估,导致最终用户无法获得实时体验。以这种情景为例,可以考虑调用addAttributes,用于对复杂组件type进行property变更,每次终端用户在关联的特征部...

artf

是的,@lexoyo最终目标是停止依赖 Backbone 的视图,将所有编辑器的 UI 元素迁移到网页组件。最终,编辑器界面会有“@grapesjs/core”(无界面)和“@grapesjs/core-ui”,并有一套可重用和可扩展的网页组件

lexoyo

这很有趣:) 我迫不及待想看到那个版本,我会尽我所能贡献

lexoyo

好主意 我经常用lit-html,方法相同,但需要时也会添加网页组件 但我不明白骨干到底会在哪里停?没有它又会怎样。我想这个问题更广泛,是关于路线图中宣布的内容(把核心内容移除)@artf

#22812019年9月19日作者 AkibDeraiya1233 个回答
0 个反应

如何在打开图片编辑器时设置图片裁剪的默认自定义比例

嘿,@artf, 感谢你创建了如此有帮助的开源库。 @artf我正在开发开放图片编辑器,用户则从“选择图片”模式中更换照片。 我成功打开了“图片编辑器”,用户关闭了“选择图片”模态,这正是利用这段代码的帮助。 但当这个模态打开时,我想在编辑器里默认设置自定义裁剪比例,而用户无法更改这个默认裁剪比例,也不能使用其他图像编辑器,比如翻转、遮罩、文本、绘图、滤镜等选项。只有默认裁剪比例和重做、撤销和重置选项可以启用,其他选项需要隐藏或禁用。 我该如何用这个命令 'editor.commands.run('tui-image-editor');' 实现? 我在想,需要把某个配置对象传递到上面的命令里。如果是的话,你能帮我弄一些配置密钥吗?...

AkibDeraiya123

嘿,@artf, 我想我找到了一些对其他用户有帮助的东西。 我从“https://github.com/artf/grapesjs-tui-image-editor”git仓库调试代码,我想我可以实现上述所有功能,还能实现更多自定义功能,比如“Tui图片编辑器(这是Grapejs-tui-image-editor中使用的主库)”。 但我就是想不明白怎么重新初始化“grapesjs-tui-image-editor.min.js”! 实际上,如果我们在打开“图片编辑器”时重新...

artf

如你所见 https://github.com/artf/grapesjs-tui-image-editor#options 插件有一个“配置”选项,每次初始化时都会被“this.getEditorConfig()”调用,所以你可以把选项放在那里

AkibDeraiya123

@artf,我已经试过了,但似乎没用。 在“this.getEditorConfig()”函数中,我们没有获得更新选项。 我还尝试用日志打印更新后的配置,在这行后面写入 'const config = { ...opts.config };',但似乎 config 会打印初始配置对象(当我初始化编辑器时,我传递给 'grapesjs-tui-image-editor' 的 pluginsOpts)。 无论如何,我已经从自己那边解决了这个问题。如果你想让我帮你发PR请求,告诉...

#22802019年9月19日作者 Davidvlv1 个回答
2 个反应

如何显示特质管理器按钮/面板

你好,我可能漏掉了什么基本的东西,但我该如何在不添加插件的情况下添加特质管理器面板? 新闻通讯插件默认添加了: ![图片](https://user-images.githubusercontent.com/24515980/65213830-08b8a880-daeb-11e9-81c9-b73b5f440960.png) 但没有添加插件的编辑器没有: ![图片](https://user-images.githubusercontent.com/24515980/65213881-356cc000-daeb-11e9-913b-93877fd23c6e.png)

pouyamiralayi

你好!我不知道你现在的页面DOM结构。但我总是这样做自定义: 然后在你的编辑器实例化配置中: 其他类似情况也适用,比如:样式管理器、图层管理器...... 干杯。

#22792019年9月19日作者 brentonkelly19821 个回答
6 个反应

:当性状发生变化时,如何更新自定义组件的模型。

嗨!我反复阅读了GrapesJS文档和API参考,了解如何创建自定义组件,但我就是搞不懂。我最初尝试扩展现有的视频组件,但后来决定自己做一个自定义视频组件。我用[现有视频组件](https://github.com/artf/grapesjs/blob/dev/src/dom_components/model/ComponentVideo.js)作为参考。我的组件可以拖到画布上,也可以切换组件设置(特质),但画布里什么都不会更新。我的组件标签名是div,因为我需要一个封装器来让内部iframe通过CSS响应。这本身可能是我添加iframe时的问题,但我还没深入到无法确定的程度。 非常感谢你能提供的任何见解! 代码片段更新并移至结尾...

brentonkelly1982

我终于自己弄明白了这个问题,想把结果分享给同样挣扎的人。这段被剪下的代码创建了一个自定义的响应视频组件,支持 YouTube、Vimeo、MyVRSpot 以及自定义的 iframe src。我能让模型在画布中更新,当组件设置(特性)被更改时。希望有人觉得这些对你有帮助。

#22782019年9月18日作者 ivcaRealWare3 个回答
3 个反应

:简化省略列/行

我需要的是简化掉落元素的方式,以加快页面创建的速度。 所以如果我丢弃了一列,但那里没有父行,我希望能自动添加。 放弃划船也是一样。如果我丢弃一行没有容器,能自动添加容器会更好。 实现这一点的最佳方法是什么?

pouyamiralayi

嗨!因为列的可拖拽属性值为“.row” 把这个扔掉。我们不需要Draggable,因为我们自己在做检查: 如果你需要针对具体情况的进一步帮助,我会非常感激。 干杯。

ivcaRealWare

我试图通过那个求婚事件来解决这个问题。但当我尝试将列丢弃到别处时,它不允许,因为draggable 属性的列值为“.row”,所以在editor.on('block:drag:stop',函数 (element) 元素如果列被移除,则是null。所以我必须把可拖拽属性改为true(因为容器里是这样),然后想办法检查里面是否有行,如果没有就更新内容或者找别的方法。 有什么建议吗?

pouyamiralayi

你好!看看[这个](https://github.com/artf/grapesjs/issues/2179#issuecomment-517666958)是否能帮到你。 干杯。

#22772019年9月18日作者 zgeist暂无回答
0 个反应

AddType 问题,自定义类型在编辑器初始化时无法使用

注意“addType”功能存在一些问题 如果我创建类似这样的自定义类型: 当我们在页面上添加组件小部件时,它运行良好 但保存内容到服务器并重新加载页面后,自定义类型就不适用了 因为“Parser”没有这种类型^,所以只使用默认类型,所以在小部件类型中不要调用“isComponent”方法。 这里:https://github.com/artf/grapesjs/blob/dev/src/parser/model/ParserHtml.js#L131 你知道这个bug吗? 可能的解决方案是在这里添加一些中间件,在调用“init”前添加自定义类型和组件到 instance 中。 https://github.com/artf/grap...

浏览所有主题