GrapesJS 问题

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

找到 3,464 个问题

#5562017年11月22日作者 crestinfo2 个回答
1 个反应

在元素内拖放文本

你好, 有没有办法在元素内部移动文本? 类似绝对拖拽的感觉

Geczy

不,不过这已经在路线图上了 https://github.com/artf/grapesjs/issues/74绝对/设计模式 启用此模式后,用户应能在画布内“自由”移动组件(依赖绝对定位)

lock[bot]

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

#5552017年11月22日作者 HarshOB3 个回答
2 个反应

在创建新组件时在脚本中添加外部脚本

你好@artf 我在创建组件时如何传递外部脚本链接?就像这样, bm.add('test-Block2', { 标签:“测试块2”, 属性:{class: 'fa fa-text'}, 内容:{ 脚本: '<script src=“”https://cdn.ckeditor.com/4.6.2/full/ckeditor.js“></script>CKEDITOR.replace( \'editor1\' )', 内容:'<textarea name=“editor1”></textarea>' } }); 现在它显示的是类似意外令牌“<”的错误。

artf

@HarshOB https://github.com/artf/grapesjs/wiki/Components-&-JS#template-related

arthuralmeidap

把“script”标签移到HTML页面导入CKEditor,然后在块里调用脚本。

rohanreddyg

JavaScript 不知怎么的不允许字符串中带 End 标签(“</script>”)。所以只要把代码改成这样: 'script: '<script>alert(“Hi”);<' + '/script>'' `

#5542017年11月22日作者 ryandeba3 个回答
0 个反应

避免悬停高光,避免选择某些组件

你好,@artf, 在提交拉取请求之前,我想听听你们对以下两项的看法。这些是为了满足我目前正在进行的一个项目的要求,但我希望它们能在 Grapesjs Core 中占有一席之地。防止某些组件出现悬停高亮效果。 组件已经有一个“可高亮”属性,用于虚线轮廓样式。我也在考虑用同一个属性来防止悬停高亮效果,但它也可以是新属性(比如“可悬停”或“highlightOnHover”?)。我还没测试过,但看起来我可以直接在 SelectComponent.updateHighlighter() 里检查属性的值,如果值被设置为 false,可以提前返回。避免选择某些组件。 我也想完全避免点击某些组件时选择它们。我现在有个hack代码,给组件添加了...

artf

1.防止某些组件出现悬停高亮效果。 组件已经有一个“可高亮”属性,用于虚线轮廓样式。我也在考虑用同一个属性来防止悬停高亮效果,但它也可以是新属性(比如“可悬停”或“highlightOnHover”?)。我还没测试过,但看起来我可以直接在 SelectComponent.updateHighlighter() 里检查属性的值,如果值被设置为 false,可以提前返回。 “可悬浮”认可 👍 我想指出不要在 Model 属性中使用“camelCase”命名,因为这会让属性变得...

ryandeba

感谢你的反馈!我已经为这些项目创建了几个拉取请求,如果你想进一步讨论,告诉我。

artf

合并,谢谢你,瑞安 👍

#5532017年11月21日作者 baxxos3 个回答
2 个反应

向现有组件添加新组件

你好, 我想问一下,是否有任何现有的支持或 API,可以将新组件添加到现有组件列表中(例如在获取或动态生成组件后)。我说的是类似这样的情况: 我研究过文档,最接近的是“addComponents()”''函数。遗憾的是,该函数没有指定新组件应放置的目标。 我之所以问这个,是因为我的目的是实时协作地使用 GrapesJS,每次用户操作后往返发送整个 HTML 表示实在太慢了。 此致敬礼, 米哈尔

ryandeba

很遗憾,我不知道有没有简单的方法可以在不递归遍历它们的情况下获得某个组件对象,但听起来这是个好主意! 你可能可以这样做,收集所有组件,然后筛选出你想要的(这段代码还没完全测试过,但希望能帮你找到正确的起点): function getAllComponents(component) { 组件 = 组件 ||编辑。DomComponents.getWrapper(); VAR components = component.get(“components”).models; c...

baxxos

感谢大家的回复,我觉得我的问题已经得到解答,没什么好补充的了。我现在要结束这个了,不过“find()”方法会是这个很棒框架中一个受欢迎的补充。

ryandeba

你好@baxxos, 你是不是想做类似的事:https://jsfiddle.net/ztqsugaw/3/?

#5522017年11月21日作者 g41n3 个回答
1 个反应

无法重置身体背景

我发现了这个 这里是#351,但似乎没有重置身体背景...... 还有其他方法吗?

artf

@duskhacker我觉得这有点关联,但不是同一个问题。 你提到CSS是从两个不同的地方生成的,而且它是一种基本的CSS重置 '*{盒子大小:border-box;}'来自 https://github.com/artf/grapesjs/blob/dev/src/editor/config/config.js#L34 以及 'body{margin:0;}来自 https://github.com/artf/grapesjs/blob/dev/src/dom_compo...

ryandeba

你好@g41n, 你能提供一个JSFIDDLE(或类似文件)来说明问题吗?我刚做了这个,先把身体背景色设为蓝色,然后两秒后清除那个样式:https://jsfiddle.net/gn3jtahv/。这对我来说似乎没问题(也用'编辑器'测试过)。CssComposer.getAll().reset()',结果相同),所以我猜你做了什么不同的操作......

g41n

你好,@ryandeba,谢谢你的回复。 经过一番挖掘,这里有一个小提琴 https://jsfiddle.net/x118ks1v/ 和复制步骤:点击重置按钮,重置成功点击正体,从右侧面板切换背景点击重置按钮,重置失败 这个问题似乎只有在你手动从Grapesjs面板更改身体背景后才会出现。 希望这能帮你找到解决办法...... :/

#5512017年11月21日作者 duskhacker3 个回答
1 个反应

文档脏指示器

我想说明该文档未被保存。知道文档数据是否从上次加载/保存以来发生变化的最佳方法是什么? 谢谢!

duskhacker

完美!非常感谢你的快速回复......还有这个项目。非常好!

artf

有一个内部计数器,你可以这样使用 “''js editor.on('change:changesCount', () => { const editorModel = editor.getModel(); const changes = editorModel.get('changesCount'); 如果(变化) { 肮脏 } }); 同一个 editor.on('change:changesCount', (editorModel, changes) => { ......

lock[bot]

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

#5492017年11月20日作者 duskhacker3 个回答
0 个反应

资产管理器删除问题

在资产管理器中,当点击移除资产的“x”时,似乎同时触发了“onDelete”事件和“onClick”事件。这样你刚删除的资产就会被放进目标。此外,在关闭资产管理器窗口并重新打开之前,不能点击另一个资产替换目标中的资产。 如果用户不够小心,可能会让文档处于不一致状态,导致服务器无法正常加载。 欢迎任何解决方法的建议。

ryandeba

你好,@duskhacker, 我成功重现了点击“X”键时onClick事件触发的问题(如果有人感兴趣,可以用jsfiddle:https://jsfiddle.net/8v946q4b/3/)。抱歉我现在没太多时间自己调试(如果你还在困扰,明天我可能有时间研究),但我觉得这是个 AssetImageView 对象里应该修复的 bug。我看到“onRemove”方法是调用“e.stopPropagation()”,我认为这是试图阻止onClick方法触发,但如果这确实是意图...

duskhacker

如果你们还在纠结,明天我可能有时间研究 @ryandeba 感谢你的后续回复!这是我对GrapesJS的一个未解决的问题。我知道我不可能在合理的时间内修复它,我对代码库不够熟悉,无法有效调试,所以只能依赖你的专业知识。目前这还不是致命的,我还有很多事情要做,才能进入制作阶段。但如果能在接下来几天修复就太好了!

ryandeba

@duskhacker - 我提交了一个拉取请求,应该能修复这个bug。 https://github.com/artf/grapesjs/pull/560

#5482017年11月20日作者 kickbk3 个回答
0 个反应

CDN上的中立协议

只是个想法,你可能想考虑在你的CDN文件中无关地加载Fontawesome。目前“从源代码'http://localhost:3000'访问'https://cdnjs.cloudflare.com/ajax/libs/grapesjs/0.12.37/fonts/fontawesome-webfont.woff2?v=4.7.0'字体已被CORS政策阻止......”在开发环境上。 顺便说一句,我之前没说过,这个项目绝对很棒。

artf

谢谢@kickbk :) 总之,我不太明白你的解决方案具体是什么

kickbk

@artf你在 https://cdnjs.cloudflare.com/ajax/libs/grapesjs/0.12.37/css/grapes.min.css 里提到的FA是'...'FontAwesome';src:url(“../fonts/fontawesome-webfont.eot?v=4.7.0“)' 所以Cloudflare正在尝试从 https://cdnjs.cloudflare.com/ajax/libs/grapesjs/0.12.37/font...

artf

@kickbk其实我计划把FA(#74)从核心依赖中移除,并用SVG替换用过的图标

#5462017年11月20日作者 krunal0393 个回答
1 个反应

内联css到类

@artf感谢你这么棒的项目,网站编辑变得容易多了。 默认情况下,编辑器会将内联CSS转换为类,但是否有设置不将内联CSS转换为类,因为我们不想将其转换为类?

artf

如果你输入“forceClass”,你会发现它只做一件事 https://github.com/artf/grapesjs/blob/dev/src/dom_components/model/Components.js#L77 所以当你添加一个新组件并且有没有空的“style”属性时,它的所有属性都会被移到新类中,抱歉,可能得改名,因为这让很多人感到困惑 对于新提出的选项,我考虑过一个只是在组件“样式”中恢复“#ids”样式的功能,但如果我们也在谈论“.classes”,我...

artf

你试过用“forceClass”吗? “''js Grapesjs.init({ ... forceClass: false, }) ```

francesca-cicileo

我也想做同样的事,但把 forceClass 设置为 false 似乎不起作用。 我做了一个最小的JSFiddle [这里](https://jsfiddle.net/yf89ybkg/4/),尝试用内联css代替类,但编辑器总是把样式移到类里,即使forceClass设为false。我是不是漏掉了什么?

#5452017年11月20日作者 NorthstarTech3 个回答
0 个反应

扇形中的按钮

如何在 grapesJS 添加新扇区时添加自定义按钮?有房产吗?在创建新区域时,我该如何创建按钮? 谢谢

artf

@NorthstarTech你用按钮的具体场景是什么?

NorthstarTech

它不一定非得是某个特定的按钮。我们想添加合并标签/占位符。由于我们提供大量资源库,放在一个扇区内会非常友好。本质上,我们希望占位符能细分为子类别,并且易于使用。

NorthstarTech

#287 类似,但我们不确定他们在编辑器中添加合并标签的具体位置。

浏览所有主题