点击“样式环绕”按钮会影响同一文本框内其他组件的内部组件
RTE在编辑时依赖于DOM内容,所以如果你故意用类似的程序删除它 “''js onRender() { this.el.innerHTML = this.model.get(“displayedText”) }, ``` 编辑完成后,内部组件将被移除。
阅读下方完整回答 ↓问题
GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? Chrome 104.0.5112.101可复制演示链接 https://jsfiddle.net/7cLr0xt2/3/描述一下那个虫子 如何复现这个漏洞? 不知为何,我无法在上面链接的小提琴里重现这个bug,因为第34行 selectedComponent.components('<span liquid="if contact.id">jhbjhhgjjh</span> <span liquid="else">qwewqeqwe</span>') 不会替换组件的内部组件,所以我得分享一个视频,说明我的项目发生了什么,步骤如下:双击 Hello World!!! 文本框,选择“世界”一词在RTE编辑器中点击画笔按钮,将该词包裹进行样式化点击组件工具栏最左侧圈出的“if”按钮,点击弹出的对话框中的“确定”,将该组件转换为“条件文本”组件双击新创建的 Open conditionals to choose 组件(通常会弹出对话框,但为了解决这个bug我简化了,现在它只是给组件应用一些虚拟信息,包括添加属性和更改组件的内部组件。不过在这个小工具里更改内部组件不起作用,我也不太清楚为什么)点击“查看代码”按钮,查看代码对代码的更改——如你所见,它已插入属性 liquidtag="if",但内部组件...
回答(4)
RTE在编辑时依赖于DOM内容,所以如果你故意用类似的程序删除它 “''js onRender() { this.el.innerHTML = this.model.get(“displayedText”) },
编辑完成后,内部组件将被移除。
好的,谢谢@artf,这说得通。 然而,那些代码行,以及 必须在画布内渲染正确的选中状态(包括组件最初渲染时以及用户选择不同的“if”状态,从而改变“displayedText”): https://user-images.githubusercontent.com/67364267/189854125-9544d34b-2f71-4b0c-872e-dbdfb2232fd9.mov 你能想到用RTE编辑后保留内部组件的方法吗?也许我可以把这些内部组件存储在“条件文本”组件本身的属性里,并在“onRender()”时分配它们?如果可以,我该如何在“onRender()”钩子里设置组件的“co...
我还需要做更多测试,但看起来我通过在创建/编辑组件时保存内部组件,然后使用'rte:disable' 钩子,如下,解决了这个问题: 这看起来有点老套,如果你能想到更好的方法,请告诉我。
谢谢你举报,@benryanwilliams。 关于点击“样式包裹”按钮会影响同一文本框内其他组件的内部组件,这个问题问得很好。ProseMirror 推荐的方法是使用事件驱动的 API。 从这里开始: 查看你所在模块的[GrapesJS文档](https://grapesjs.com/docs/) 寻找“on()”事件监听器方法 大多数操作可以通过监听编辑器和组件事件来实现 常见模式: “JavaScript 留意变化 editor.on('change', () => console.log('something changed')); 组件生命周期 editor.on('compone...
相关问答
通过相似的问题讨论继续研究。
问题 #5086
Style:property:update 和 Property onChange 都被过度触发
GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome 版本 112.0.5615.137(官方版本) 可复制演示链接 https://jsfiddle.net/SagarMaria/sunygp2f/3/ 描述一下那个虫子 如...
问题 #5990
当你删除组件时,组件间的重复类也会被删除。
GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome 126.0.6478.127(Windows) 可复制演示链接 https://jsfiddle.net/t06s4oLb/8/ 描述一下那个虫子 如何复现这个漏洞?将第1...
问题 #6706
TypeError:e.getRoot 不是函数(样式管理器中的竞态条件)
GrapesJS版本 [x] 我确认使用最新版本的GrapesJS 你用的是什么浏览器? 所有浏览器(Chrome、Safari、Firefox、Edge) 可复制演示链接 https://jsfiddle.net/saeedhbi/powxyjdq/3/ 描述一下那个虫子 如...
问题 #4497
从 v18.4 更新到 GrapesJS v19.5 会导致 Chrome 变得无响应
GrapesJS版本[x] 我确认使用最新版本GrapesJS你用的是什么浏览器? Chrome 104.0.5112.79可复制演示链接 https://jsfiddle.net/gvrnw2c3/4/描述一下那个虫子 如何复现这个漏洞? 我目前无法用 jsfiddle 重现...
与此问题匹配的付费插件
根据问题关键词和标签相关性精选,助你更快交付。
正在加载付费插件推荐……
相关教程
关于同一主题的深入指南。
教程
Introducing Search on GJS.Market
GJS.Market now has one search across everything we publish — plugins, articles, community questions, guides, authors and services. Press ⌘K from any page.
教程
如何在2026年用 GrapesJS 构建AI驱动的页面构建器
我们构建GJSDocs的经验——从简单的AI文本生成到结构化、上下文感知的视觉编辑
教程
2026年构建一个SaaS页面构建器需要多少钱?
2026年构建一个SaaS页面构建器的成本是多少?探索实际的开发成本、时间表、功能,以及使用 GrapesJS 如何降低成本
浏览插件分类
直接跳转到市场上的插件分类页面。