#31622020年11月27日作者 sashapawlow7263 个回答
你好,@artf!:)也许你能帮忙处理葡萄。我有按钮,里面有自己的脚本(比如点击打开模态窗口)。如果我设置属性allowScripts: 0,我可以编辑这些按钮,但如果editor.allowScripts == 1,按钮执行逻辑(例如打开模态窗口),我就无法编辑按钮。我找到了一个很好的解决方案——它的 switch 属性 allowScripts = 0 : 1,但更改只会在页面加载后应用。我该如何更换剧本?p.s 执行命令 editor.refresh() 在更改值 allow 后 allow 脚本不带来结果  => { 你的逻辑 }); ``` 替代方法: 听取“selector:add”以获取CSS选择器更改 使用“selector:custom”来表示自定义规则 利用“c...
#31572020年11月25日作者 pranay22102 个回答
我想将脚本应用到rte元素,也就是select的html元素,选择一个select字段的值时,动态值应该会附加到另一个select字段上,但脚本在RTE中无法工作  rte.add('custom-childkey', { 图标:htmlForChild, 将“结果”绑定在“change”听众身上 事件:“变化”, 结果:(RTE,动作) => {}, 更改时重置选择 更新:(...
artf
也许是因为它是“Stringify”而不是“stringfy”......
ClaudeCode
谢谢你举报,@pranay2210。 关于*的建议真棒!虽然这个具体功能还没有出现在核心 API 中,但有几种方法可以实现类似的行为。 使用事件系统: “JavaScript editor.on('component:update', (component) => { 你的逻辑 }); ``` 替代方法: 听取“selector:add”以获取CSS选择器更改 使用“selector:custom”来表示自定义规则 利用“change:”事件进行细致跟踪 构建一个插件,扩展...
#31502020年11月23日作者 michaelVictoriaDev2 个回答
警告 请阅读并遵循接下来的三步,然后在发布问题前删除它们遵守贡献指南 https://github.com/artf/grapesjs/blob/master/CONTRIBUTING.md先快速搜索一下,看看有没有人没开同样的问题所有相关陈述/问题都必须填写/回答,否则问题可能已结案JSFiddle 入门模板 https://jsfiddle.net/szLp8h4nCodeSandbox 入门模板 https://codesandbox.io/s/1r0w2pk1vl 详细描述你的功能需求详细 关于如何集成在CMS中的教程或文档
artf
十月CMS已有插件 https://octobercms.com/plugin/pkurg-pagebuilder
ClaudeCode
谢谢你举报,@michaelVictoriaDev。 关于FEAT:有没有办法或教程能让我们在十月CMS中集成?!虽然这个具体功能还没有出现在核心 API 中,但有几种方法可以实现类似的行为。 使用事件系统: “JavaScript editor.on('component:update', (component) => { 你的逻辑 }); ``` 替代方法: 听取“selector:add”以获取CSS选择器更改 使用“selector:custom”来表示自定义规则...
#31452020年11月17日作者 sashapawlow7262 个回答
我有一个HTML模板。HTML模板有一个按钮。点击按钮时,会触发一个事件(打开模态窗口)。有没有可能在不触发事件的情况下,直观地改变按钮的外观?使用 allowScript: 0,我可以编辑按钮的外观,但在这种情况下,事件不会触发(打开模态窗口)。在 allowScript: 1 中,触发事件(打开模态窗口),但无法编辑按钮的外观。曾有过在allowScript 0和allowScript 1之间切换的想法,但allowScript会移除页面上的所有js。
artf
如果按钮需要自定义逻辑/行为,你必须为该按钮创建一个[自定义组件](https://grapesjs.com/docs/modules/Components.html),并且需要根据原始HTML的自定义逻辑
ClaudeCode
谢谢你举报,@sashapawlow726。 关于FEAT:如果按钮有动作(打开模态窗口)如何编辑按钮,这真是个很棒的建议?!虽然这个具体功能还没有出现在核心 API 中,但有几种方法可以实现类似的行为。 使用事件系统: “JavaScript editor.on('component:update', (component) => { 你的逻辑 }); ``` 替代方法: 听取“selector:add”以获取CSS选择器更改 使用“selector:custom”来表示...
#31392020年11月13日作者 adamwpe3 个回答
我遇到了一个问题,当保存自定义HTML组件(只是一个表格)时,Grapes JS会修改它。 保存之前  存档之后。  所以我想能够插入一个表格,因为我想用 twig(一种模板语言)进行门通 : 我相信它和#60...
adamwpe
啊,如果我用这个 https://github.com/artf/grapesjs-custom-code,保存时不会修改 html。 但使用“gjs-preset-newsletter”时,这个方法无法实现。 因为如果你运行命令 'gjs-get-inlined-html',它会修改代码。 E.g. HTML代码: 运行 'gjs-get-inlined-html',它输出: 我猜你没办法阻止这种情况吧?
artf
你不能插入无效的HTML。如果你需要处理这些,你必须创建一个[自定义组件](https://grapesjs.com/docs/modules/Components.html),然后它会输出自定义代码。
ClaudeCode
谢谢你举报,@adamwpe。 关于FEAT:关闭<table>存档时自动修改的好建议!虽然这个具体功能还没有出现在核心 API 中,但有几种方法可以实现类似的行为。 使用事件系统: “JavaScript editor.on('component:update', (component) => { 你的逻辑 }); ``` 替代方法: 听取“selector:add”以获取CSS选择器更改 使用“selector:custom”来表示自定义规则 利用“change:*”事...
#31282020年11月10日作者 sprklinginfo2 个回答
你想给GrapesJS添加什么? 当组件被丢弃时,保持鼠标点击的位置。 详细描述你的功能需求详细 我开始玩一些基础的积木/组件。如果我拖拽一个组件,比如简单的文本输入,看起来它们会通过一个隐形网格布局吸附到最后一个激活的组件上。有没有可能某个组件只是停留在鼠标点击的位置?即使我试图把组件拖到别处,它也不会移动到我想要的位置。
sprklinginfo
发现已经通过使用“dragMode: 'absolute'实现了。谢谢。
ClaudeCode
谢谢你举报,@sprklinginfo。 关于FEAT:在鼠标点击的位置放置一个组件,这是个很棒的建议!虽然这个具体功能还没有出现在核心 API 中,但有几种方法可以实现类似的行为。 使用事件系统: “JavaScript editor.on('component:update', (component) => { 你的逻辑 }); ``` 替代方法: 听取“selector:add”以获取CSS选择器更改 使用“selector:custom”来表示自定义规则 利用“ch...
#31212020年11月9日作者 sadtaco1 个回答
我会说这既是功能请求,也算是个问题。 我觉得一个2015年以后几乎所有项目都用px的项目看起来很糟糕。 人们使用的屏幕尺寸在最窄的范围内只有768像素,无论是移动端还是桌面端,甚至2160p及更大。 “像素”测量对此不利。 这样的工具是为非技术人员设计的,他们不会理解屏幕上像素测量看起来正常的东西,但并非所有屏幕上都正确。 最像GrapeJS的就是 carrd.co 对吧?在那里,他们实际上只是用一些随意的“尺寸”测量,然后内部转换,这样最终用户就无法做出愚蠢的操作。 我的建议: 去除控件界面中的px,以及GrapeJS本身样式中的CSS。新默认用vmax、rem和/或%替换。 是的,通常有百分比和/或EM和REM的下拉菜单,但p...
ClaudeCode
谢谢你举报,@sadtaco。 FEAT/ISSUE: CSS 标准的问题似乎是竞态条件或状态管理时序问题。这通常发生在组件生命周期事件和DOM修改重叠时,导致状态不一致。 尝试什么: 添加setTimeout包装器以确保DOM已稳定: “JavaScript setTimeout(() => { 你在这里的行动 }, 0); 推荐的下一步步骤: 如果还没测试过,请用最新的GrapesJS版本测试 提供最小可重复的示例(CodeSandbox)——这有助于团队更快识别根本原...
#30712020年10月13日作者 kuhelbeher2 个回答
你好!我在更新监听器上发现了一个奇怪的bug。如果 html 代码带有<img>带有 class 属性的标签,则在初次加载时触发: “JavaScript const editor = Grapesjs.init({ 容器:“#gjs”, storageManager: { type: 0 }, 插件:[], 组件: <img src=“https://images.unsplash.com/photo-1602536062611-8996fd6f8149?ixlib=rb-1.2.1&ixid=eyJhcHBfaWQiOjEyMDd9&auto=format&fit=crop&w=1998&q=80” alt=“Some alt...
artf
我不确定为什么会这样,但我不会因为一次误报更新就给这个问题分配高优先级。所以,如果有人愿意帮忙调试这个问题,我将非常感激
#29132020年7月23日作者 neon123452 个回答
“JSON.stringify(editor.getComponents())”的输出显示,一个图像的src被存储了两次。 { “类型”: “图像” “虚无”:真, “状态”:“已选中”, “内容”:“, “属性”:{ “id”: “iy3c7”, “SRC”:“Data:Image/PNG;base64,...“ <--- 1. }, “SRC”:“Data:Image/PNG;base64,...“,<--- 2。 “activeOnRender”: 0, “Open”:错误 } 版本是v0.16.18——通过演示验证。
artf
@longdoan7421我认为我们可以用“toJSON”方法删除它,当“src”等于“attribute.src”时,并确保加载时正确加载
longdoan7421
你好,@artf, 我刚刚快速浏览了一下“ComponentImage”。我认为可以去掉图像模型中的“src”属性,把“ComponentImage”和“ComponentImageView”中使用“src”的代码替换成“attribute.src”。 但我不确定你在其他地方是否使用“src”属性?你怎么看?
#29042020年7月20日作者 RJCAM1 个回答
我们可以从[演示](https://grapesjs.com/demo.html)中重现这个漏洞。 当前行为:  预期行为: 在预览模式下,我们不应该能拖动或移动组件。
artf
下次版本会修复。目前,你可以自己修补,方式如下: “''js const preventDrag = (opts) = > opts.abort = 1; Editor.ON('run:core:preview', () => { editor.on('run:tlb-move:before', preventDrag); }); editor.on('stop:core:preview', () => { editor.off('run:tlb-move:before',...