#52322023年7月11日作者 bgrand-ch4 个回答
GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 114.0.5735.133 可复制演示链接 不可能添加工蚁来繁殖。 描述一下那个虫子 如何复现这个漏洞?添加一名网页工作人员。在工作者内部设置“无头”选项初始化 GrapesJS 。添加一个带有“editor.DomComponents.addType” + “styles”的插件。给员工发消息。参考文献错误:文档未定义。 预期的行为是什么? 在工作者中使用 GrapesJS ,避免出现“ReferenceError: document is not fined”错误。 目前的行为是什么? 参考错误:文档未定义。 如果需要执行某些代码以重...
artf
你好,@bgrand-ch,不幸的是,所有涉及解析器(HTML/CSS)的内容都需要使用与DOM相关的API。对于CSS,也许你可以试试用[parser-postcss插件](https://github.com/GrapesJS/parser-postcss),我预计它能在工作环境下工作
bgrand-ch
你好,@artf,非常感谢你的快速回复😄,我这周会试试看。
bgrand-ch
@artf Post CSS 解析器插件在 Web Worker 中运行得非常完美!谢谢你的帮助。
#52292023年7月10日作者 joukhar4 个回答
GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? Chrome 版本 114.0.5735.199(官方构建)(64位)可复制演示链接 无描述一下那个虫子 如何复现这个漏洞?丢弃该组件 <div class=\"flex items-center rounded shadow-md overflow-hidden max-w-xl relative dark:bg-gray-900 dark:text-gray-100\"> <div class=\"self-stretch flex items-center px-3 flex-shrink-0 dark:bg-gray-700 dark:...
artf
你好@joukhar最新版本是不是也这样? 如果我用你的 JSON 示例,我能在导出代码中看到“null”(这应该可以修复),但我无法用你的 HTML 示例生成带有 “null” 的 “textnode”,你能为这个用例创建一个可复现的演示吗? 不确定在哪种情况下textnode可能是“null”,但我们可以肯定能防止这种情况......
joukhar
谢谢你的重玩,如果你需要试玩版,请给我点时间,等我做完会再评论 问题只在存储和加载时出现,但第一次丢弃组件时却没有反应
#52212023年7月7日作者 Staubgeborener2 个回答
GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? Safari 16.5可复制演示链接 https://grapesjs.com/demo.html https://staubgeborener.de/描述一下那个虫子 我试用了官方的[演示](https://grapesjs.com/demo.html)。我什么都没改,只是点击 view code 按钮,下载html和css文件作为压缩压缩包。这些文件已经上传到我的网页服务器上,桌面设备运行得很正常。但当我用移动设备访问这个网页服务器(比如iOS-Safari浏览器)时,网站仍然是桌面版,而不是移动端版本。演示本身已经实现了移动版。 如何复现...
artf
这与核心无关,只是导出 HTML 中缺少一个元标签demo.html '''html <meta name=“viewport” 内容=“width=device-width,initial-scale=1”> ``` 如果你想提交永久居民申请,我很乐意帮你合并
GJS Helper
你遇到的问题不是GrapesJS本身的bug,而是部署响应式网页时常见的疏忽。根本原因是导出的HTML文件<head>部分缺少viewport meta标签。 根本原因解释 现代移动浏览器依赖viewport元标签来正确响应式地渲染网页。没有该标签,许多移动浏览器(尤其是iOS上的Safari)默认将页面渲染为类似桌面的宽度(例如980px),然后缩放以适应设备屏幕。这导致移动设备上会出现“桌面版本”,即使你的CSS包含针对较小屏幕的媒体查询。 GrapesJS演示页面(h...
#52072023年6月28日作者 gxanshu3 个回答
GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? Chrome最新款 可复制演示链接 https://codesandbox.io/s/withered-bush-wv29dx?file=/index.js 描述一下那个虫子 如何复现这个漏洞?...创建多页 ( grapesjs.init)...检查每页的样式 预期的行为是什么? 每个页面都包含自己的样式,不包括其他页面的CSS ... 目前的行为是什么? 目前所有页面的CSS将合并并应用于所有页面。欲了解更多详情,请访问复制链接并查看所有页面的代码 ... 如果需要执行某些代码以重现该漏洞,请将其粘贴到下面: 行为准则 [X] 我同意遵...
artf
这是有意为之,我不打算改变这种行为,因为如果你需要每页不同的样式,可以很容易地创建特定的 CSS 选择器。 这种方法的最大好处是允许在不同页面间重复使用选择器。
hasan-aa
我觉得我遇到了这种方法的问题。 我把页面保存到服务器上是这样: “JS const component = page.getMainComponent(); const css = editor.getCss({ component, avoidProtected: true }) saveToBackendApi(component,css) 针对 ID 的 CSS 规则运行正常,但带类的规则即使加载在不同页面时也会重复。 例如,'.gjs-row' 类的 #s 规则在每...
GJS Helper
你遇到的 GrapesJS 中多个页面重复 CSS 的问题,是一个常见的混淆点,涉及 GrapesJS 如何在编辑器实例内全局管理样式。默认情况下,GrapesJS的 CssComposer(负责管理所有 CSS 规则的组件)会累积样式。当你初始化多个具有各自styles属性的页面时,这些样式会被添加到全局 CssComposer中,并在所有页面保持活跃,导致样式合并的情况。 根本原因 GrapesJS 中的CssComposer设计为在单一编辑器实例内存储所有 CSS 规...
#51842023年6月14日作者 acantepie2 个回答
GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? 版本 113.0.5672.126(Build officiel)(64 位)可复制演示链接 https://grapesjs.com/demo-newsletter-editor.html描述一下那个虫子 如何复现这个漏洞?访问演示网站:https://grapesjs.com/demo-newsletter-editor.html清空画布并添加文字块两次: https://github.com/GrapesJS/grapesjs/assets/12775815/b6bf6a1a-6907-4054-a93b-f5939efb353f =>...
artf
谢谢@acantepie请在[proper repo](https://github.com/GrapesJS/ckeditor)中打开问题,因为这不是核心相关的问题
GJS Helper
你遇到的问题是,GrapesJS 的富文本编辑器(RTE)工具栏在切换多个文本组件时无法正确刷新状态(例如加粗、斜体按钮),这是一个已知的同步问题。这通常是因为浏览器内部选择状态或GrapesJS RTE 的更新机制无法可靠地重新评估新选中的contenteditable元素的激活命令。 根本原因 GrapesJS 使用一个 RichTextEditor 模块(通过 editor.RichTextEditor访问)来管理 RTE 工具栏。该模块监听document上的sel...
#51732023年6月9日作者 FaisalShaikhHA3 个回答
GrapesJS 版本 [X] 我确认使用最新版本 GrapesJS 你用的是什么浏览器? 版本 112.0.5615.137(官方构建)(arm64) 可复制演示链接 https://jsfiddle.net/yhj6qa1u/6/ 描述一下那个虫子 如何复现这个漏洞?选择一个组件,并使用样式管理器添加样式。使用 editor.Css.setRule 为该组件设置样式,注意之前的样式已被移除,但根据文档,它应该会更新CSS规则。 预期的行为是什么? 它应该更新现有规则。 目前的行为是什么? 它取消了现有规则,而不是更新现有规则。 https://github.com/GrapesJS/grapesjs/assets/102785...
artf
你好,@FaisalShaikhHA这是预期中的行为,但我猜“setRule”的文档有点误导。规则实际上是更新的(不会用相同的选择器创建新的规则),但样式只是被替换。 如果你需要添加新样式而不是替换它们,这就是你应该做的 “''js const selector = '#${this.getId()}'; const rule = 编辑器。Css.getRule(selector); 编辑。Css.setRule(selector, { ...统治?getStyle(),...
GJS Helper
你在editor.Css.setRule上观察到的行为不是bug,而是GrapesJS CSS Composer API设计时如何处理规则更新。当你调用editor.Css.setRule(selector, styleObject)时,如果已经存在带有该选择器(以及媒体查询、状态等其他上下文)的规则,GrapesJS会用你提供的新styleObject版本替换该规则的整个样式对象。它不会自动将新属性与现有属性合并。 这与GrapesJS(以及GrapesJSBackbon...
#51562023年5月31日作者 loclovepop3 个回答
GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? Chrome,IOS可复制演示链接 https://www.lovepoptestsite.com/products/disney-s-hocus-pocus-black-flame-candle-pop-up-card?variant=40356218077273&preview_link=124907487321 密码:ilovecards描述一下那个虫子 如何复现这个漏洞? 我试过用手机屏幕单独拖拽 grapejs 编辑,一切都没问题。但当我尝试在注入编辑器测试存储后这样做时,效果并不如预期。 预期的行为是什么? ...它应该允许拖放组件...
loclovepop
[screencast-www.lovepoptestsite.com-2023.06.01-001711.webm](https://github.com/GrapesJS/grapesjs/assets/124012807/a171fbbb-dd8b-45a6-901c-d0c2519c8304) 这是关于bug的视频
artf
我看到触摸插件是正常工作的,确保加载时启用移动设备(比如加载后不要模拟),这样聚合物填充才能正确加载。
GJS Helper
你遇到的拖放功能在移动屏幕上无法正常工作的问题,尽管GrapesJS嵌入在你的“测试商店”环境中,尽管使用了grapesjs-touch,这在复杂的网页应用中很常见。这通常源于CSS冲突或事件处理干扰,扰乱了GrapesJS的基于触摸的拖拽逻辑。 根本原因解释: 当GrapesJS独立运行时,它对DOM和CSS拥有完全控制权。然而,当嵌入时,尤其是在像“测试商店”这样的平台上(它很可能拥有自己的全局样式、脚本和事件监听器),这些可能会干扰GrapesJS预期的行为。特别是触...
#51542023年5月31日作者 jmtt894 个回答
GrapesJS版本 [X] 我确认使用最新版本GrapesJS 你用的是什么浏览器? ---- 可复制演示链接 https://codesandbox.io/p/sandbox/pensive-browser-mfhxp8 描述一下那个虫子 如何复现这个bug?创建Angular项目添加grapeJS依赖关系在TSCONFIG中包含"allowSyntheticDefaultImports": true(用于骨干网)为GrapeJS 创建包装组件 在项目中使用包装组件 预期的行为是什么? 渲染GrapeJS编辑器目前的行为如何? 构建时就坏了 行为准则 [X] 我同意遵守本项目的行为准则
marktamis
我把一些tsconfig设置从一个正在运行的vite gjs项目复制到我的stenciljs项目里,现在它运行正常了。我觉得你需要对你的 Angular TSCONFIG 做些调整,这样它就不会再抛出错误了 下面是我正在运行的 Stencilsjs TSCONFIG: 似乎正是这个功能让编译成为可能的原因
Deepakanandrao
“skipLibCheck”:true, “skipLibCheck”: true “”成功了。谢谢@marktamis 👍
artf
是的,在我找到该TS输出😞的修复之前,这里需要用“skipLibCheck”: true”
#51352023年5月22日作者 duclet2 个回答
GrapesJS版本 [X] 我确认使用最新版本GrapesJS 你用的是什么浏览器? 全部 可复制演示链接 没有 描述一下那个虫子 如何复现这个漏洞?根据这里的定义:https://github.com/GrapesJS/grapesjs/blob/dev/src/stylemanager/index.ts#L304,你应该提供optionsPropertyProps的选项。然而,这里定义的PropertyProps:https://github.com/GrapesJS/grapesjs/blob/dev/src/stylemanager/model/Property.ts#L9,并不具备此类属性。这导致TS编译器发出了投诉。...
SachinPuthiyoth
看起来 StyleManagerConfig.sectors 中的类型定义没有变化 : https://github.com/GrapesJS/grapesjs/blob/5c890449a52f526bc480d6dc649ff5e01ec59140/src/stylemanager/config/config.ts#L8 我们是不是应该更新它,使用像 PropertyTypes 这样的功能: https://github.com/GrapesJS/grapesjs/bl...
GJS Helper
感谢您报告此问题。在查看GrapesJS源代码,特别是 dev 分支和最新的稳定版本(0.21.10时),发现 PropertyProps 接口确实包含了 options 属性。因此,StyleManager.addProperty 的类型定义应是正确的,允许你在 PropertyProps 对象中提供options而不会导致 TypeScript 编译器错误。 让我们澄清当前类型的定义: 1.PropertyProps 接口 PropertyProps接口定义于src/s...
#51312023年5月20日作者 sdimitrenco2 个回答
GrapesJS 版本[X] 我确认使用最新版本 GrapesJS你用的是什么浏览器? 铬可复制演示链接 https://jsfiddle.net/sdimitrenco/rn8u4pc0/7/描述一下那个虫子 我不确定这是不是bug,但对我来说,这种行为看起来很奇怪 我有一个组件列表,包含组件ol和组件LI。 那个代码,代表阻挡 组件列表的模型 这个模型用于 ol 分量 以及锂分量的模型 如你所见,所有模型都包含类型和标签名称,内部 grapes 正常,但如果我尝试转换成json,比如JSON.stringify(this.grapesInstance.getComponents()),我有个带有标签名的json缺失所有字段,看...
artf
如果属性的值与默认定义相同,则跳过。这由 ['avoidDefaults'](https://github.com/GrapesJS/grapesjs/blob/e217dc75d463a84333ee4d9f37216f4f56c77024/src/editor/config/config.ts#L250-L256) 配置选项控制,强烈建议尽量保持 JSON 小。
GJS Helper
这种行为不是bug,而是GrapesJS内部的有意优化,利用了Backbone.js模型。当你将GrapesJS组件序列化为JSON时,通常会省略与该组件类型默认值相符的属性,以减少序列化数据的大小。 根本原因 默认值优化:GrapesJS组件是骨干模型。当调用模型的toJSON()方法(JSON.stringify隐式使用)时,通常只序列化那些与模型定义的defaults值不同的属性。这是保持数据负载精简的常见模式。 你的自定义组件(list,ol,li):你在defau...