Safari编辑文本无法正常工作
当你在Safari中打开[演示页面](https://grapesjs.com/demo.html)时,你无法编辑文本。
已收录 3,464 个 GitHub 问题 — 370 个已解决 · 90 个待解决 搜索、筛选并探索经过实战检验的答案。
找到 3,464 个问题
当你在Safari中打开[演示页面](https://grapesjs.com/demo.html)时,你无法编辑文本。
按钮激活状态出现问题  如果按钮已经激活,点击激活状态时会保持状态未重置 这可能逻辑错了 https://github.com/artf/grapesjs/blob/dev/src/panels/view/ButtonView.js#L142 我该如何推广“toogleActive”方法?
kerryj89
我也遇到同样的问题,链接@artf提到虽然一开始是激活状态,但点击其他设备时就停止工作了。 编辑:@zgeist 在这里修正了 https://github.com/artf/grapesjs/issues/3305#issuecomment-808323277
artf
我觉得问题出在网页预设(没时间更新),但和入门里描述的属性一样:https://grapesjs.com/docs/getting-started.html#style-manager 你必须添加带有“togglable: false”属性的按钮
给定以下代码示例...... “'' HTML <div style=“height: 100px;”> 顶部或左侧有空隙 </div> <div id=“gjs”> <p style=“填充:25px”> 赫斯德洛世界!!</p> </div> 导致无法通过面板上的拖曳图标拖放元素来修正位置。  请参见Fiddle演示...... https://jsfiddle.net/niisar/zc51gtnv/
pouyamiralayi
这只是拖拽图标的,对吧?手动拖拽没问题。 使用拖曳图标,它会从顶部重置元素的位置,看起来就是这样。
niisar
这只是拖曳图标的,对吧?手动拖拽没问题。使用拖曳图标,它会像看起来一样重置元素的位置。 是的,这只适用于拖曳图标。
artf
是的,问题在于根据上下文的不同事件对象。当你触发对组件本身的拖拽时,事件在iframe的上下文中(因为点击的元素在iframe中),但组件的按钮在iframe之外,所以事件的上下文是原始的“窗口”。
嗨! 当我输入一个重要风格的房产时,这几乎没问题。当我清除字段的值(比如颜色类型)时,值被设置为“未定义!重要”。 要解决这个问题,在 Property.getFullValue 上,你必须先检查值,然后再添加“!important”: 如果(value !== 未定义 & & this.get('important')) { value = '${value} !important'; } 再见!
artf
谢谢@WebEtSolutions下次版本会修复的
我有一个自定义组件,当我把它放进一个文本组件里(我用的是扩展原始文本组件的自定义文本组件)时,保存并重新加载HTML/CSS后,我遇到了同样的问题——文本组件会转换成一个Box。我用自定义属性,但无论哪个属性,组件类型都会从文本转换成默认。 附言:自定义组件在双击后可以编辑。 保存前: '<div data-gjs-type=“text” data-highlightable=“1” data-text-extended=“Text”>插入 <span data-gjs-type=“custom-type” contenteditable=“false” data-gjs-textable=“true” >自定义合成测试</spa...
inaLar
嗨!这些信息非常有用——关于通过这种方式访问模型而不是通过DOM的。 我会去探索。我仍然不明白为什么当我把自定义组件放进文本组件时,gjs-comp-selected 类却会被存储在 innerHTML 里。也许这只是被发现的行为。 另外,我正在考虑移除自定义组件中的类属性(gjs-comp-selected),该组件的模型内为 onRender()。但区分父母和孩子的模型对我来说还是个新领域:)
inaLar
@pouyamiralayi,是的,我做过完全一样的操作,效果很好,但我也设法在扩展文本组件的isComponent中使用了tagName(div, p, ... ),这在我这里也有效。 我现在就结束这个问题。 非常感谢你提供的所有内文! 干杯
pouyamiralayi
你是在插件里定义自定义类型吗?
你好!我最近遇到了一个新推出的超棒功能[这里](https://github.com/artf/grapesjs/blob/c1fb490a73adefb0fa073f37bef4e6178d9321a8/src/dom_components/config/config.js#L40-L58) 在这里你可以对React生成的元素进行处理,非常棒。 目前我正在开发一些第三方组件,这些组件使用Vue作为编译器。 我目前采用的方法是如下,效果良好: “''js 脚本:函数 () { const appl = new Vue({ El:“#ccid” 数据:{ 信息:“按钮” }, 模板:“<q-btn>{{消息}}</q-btn>' }...
artf
嗯,我可能没描述得对,尤其是这个: “''js 默认情况下,GrapesJS 已经支持 React 元素 所以这个功能的目的只是理解由JSX生成的对象并将其转换为GrapesJS组件定义对象,而不是用来理解React/Vue组件本身 在你的例子中,你成功加载了一个Vue组件,但无法编辑它,因为它不是编辑器的一部分,更像是编辑器的静态内容。你可能需要一些自定义CSS来让这些按钮扩展到包装器。
我们遇到过Grapes元数据(组件、样式等)增长到导致我们这边出现问题的问题。检查后我们发现 HTML/CSS 的葡萄输出不到 5k,但 Components/Style 对象的存储速度是 ~190k。 在研究组件后,我注意到大多数数据都是带有空值/默认值的键(“”、[]、0等)。为了节省空间,是否值得去掉这些值,并且在葡萄中更改逻辑,假设未定义属性代表空值或默认值?
devgru
考虑使用“avoidDefaults”标志,它通过移除这些默认值来减少配置占用: https://github.com/artf/grapesjs/blob/c1fb490a73adefb0fa073f37bef4e6178d9321a8/src/editor/config/config.js#L131
artf
考虑使用avoidDefaults标志,它通过移除这些默认值来减少配置占用 正确
嘿,@artf我需要帮忙解决我遇到的一个挑战 我想在预览模式下隐藏带有src为空的图片,以特定类别图片为主,并在编辑器模式下显示。 我试过了,但不知为何似乎没用 谢谢, 柴图
artf
你不能只做 '$('.img[src=“”]')' GrapesJS 组件不在同一上下文中,它们被放在一个 iframe 里,所以你必须使用那个 iframe 里的“文档”,比如说, “''js 编辑。Canvas.getDocument().querySelectorAll('.img[src=“]') ```
pouyamiralayi
你的选拔者是正确的吗?据我所知,葡萄会设置“background-image:url()”而不是 src。
给定以下代码示例...... 如果编辑器显示区域低于设备指定的高度,就无法滚动到画布顶部。 请参见Fiddle演示...... https://jsfiddle.net/gstone007/0vq3o2jf/1/
ghost
只需在 .gjs-cv-canvas__frames 中添加样式 'overflow: auto'
artf
在进一步了解这个问题后,我建议不要用设备面板超过画布高度。不幸的是,目前让画布的任何部分可滚动(@TheDiamondKing建议的解决方案)会导致意想不到的行为。 我正在做框架和画布的重构,所以可能会有不同的解决办法
contentfree
@artf 你的评论还成立吗?添加“溢出:自动”(尤其是在“设计模式”/“绝对模式”画布中)仍然会引起问题吗?
你好, 我愿意为你定制GrapesJS编辑器,满足任何效果。 我有大约3年的GrapesJS经验和9年的网页开发经验。 我的作品示例: https://monosnap.com/file/MnXzYlIK5UVe3oVr8dqveDzZG7PVU8 视频: https://monosnap.com/file/Lw0E8VmGdsyWUGe8jsRII6i66P1urm 电子邮件:[email protected] Skype:maxim2356 此致敬礼:)
smik3
哦,我知道!我指的是,如果你尝试使用Dist的索引/块/组件文件(即未压缩且更易操作),它们在Node/webpack环境外是无法工作的。 2019年8月19日20:18,Pouya Miralayi<[email protected]>写道: @smik3你不需要节点环境来定义插件。 grapesjs.plugins.add('your-plugin', editor => { your stuff } 这将定义行为,并且你有编辑器实例作为参数可用。 然后像...
inaLar
@smik3,这并不是一个好做法,因为以后更新GrapesJS会变得不便。你最好把 js 函数里的自定义代码和你需要用作插件的代码分开,然后加载。或者只用Node编译插件,然后把plugin-name.min.js投入生产环境。 'var editor = grapesjs.init({ ... 插件:[yourCustomFunction], ... }) `
Chaitwo
嘿,@GoodPHP我需要帮忙解决我一直面临的一个挑战 我想在预览模式下隐藏src为空的图片,并在编辑器模式下显示,即停止:预览。 我试过了,但不知为何似乎没用 谢谢, 柴图