问题 #1753💬 已回答提出于 2019年1月24日作者 arachnosoft0 个反应

StyleManager - SectorsView - addToCollection() 使用“name”属性构建 ID,但因多个空格或特殊字符而失败

快速解答作者 arachnosoft

这是我之前提到的截图: ![Grapesjs ID 属性 bug报告](https://user-images.githubusercontent.com/42835357/51692532-67ca2a00-1ffd-11e9-9568-3e97ab61ec90.png)

阅读下方完整回答 ↓

问题

你好@artf, 利用grapesjs.init()方法中的pluginOpts属性,我通过Newsletter插件自定义了样式管理器中显示的扇区,如下: “''js Grapesjs.init({ [...] 插件:['gjs-plugin-ckeditor', 'gjs-blocks-basic', 'gjs-preset-newsletter', 'gjs-preset-webpage', pluginsOpts: { [...] 'gjs-preset-newsletter': { styleManagerSectors: [ { id:“尺寸”, 名称:“我的自定义标签带空格” build道具:[ [...] ], [...] } ] } } ); 你可能知道,JavaScript 的标准“替换”方法默认表现得有点奇怪,如果你没有明确设置带有 g 标志的 RegExp,它只替换源字符串中的第一个出现点(不像地球上其他所有编程语言,它们会自动处理这个)。所以才有这个bug。 此外,“name”属性在某些语言中也可能包含特殊(带重音)字符,而且这些属性也可能破坏ID,因为你无法逃脱它们。 如果这里使用“name”属性是有意为之,而不是复制粘贴错误(如果你指的是“model.get('id')”而不是“model.get('name')”),那么这样做的目的是什么? 与其使用...

回答(3)

artf2019年1月27日

如果这里使用“name”属性是有意为之,而不是复制粘贴错误(如果你指的是model.get('id')而不是model.get('name')),那么这样做的目的是什么? 与其使用一个“本我”属性,不如我们自己定义?(并且自然避免使用带有此类性质的空格或特殊字符)。 嗯,这绝对不是明智的选择,可能我当时还没在那个模型上用“id”。我会在下一个版本里改。子公司问题:在等待官方修复(或不修复)期间保留这个变更会有危险吗? 我认为,为了让它更适合自定义,可能需要去掉那个id属性,改成一个新类,所以最终结果应该是'class=“gjs-sm-sector gjs-sm-sector__MYID””

lock[bot]2020年1月27日

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

相关问答

通过相似的问题讨论继续研究。

问题 #1740

:id 元素未保存的 CSS 属性设置在 v0.14.50

当我尝试给“1列”行元素添加背景色时,它在编辑器中是内联的,没有用ID绑定,ID是唯一的,当我保存“HTML”并样式“json”并渲染回去时,它也不会保存,最后的“HTML”,如果我打开导出选项, 它在“CSS”中与ID绑定,但不知为何,样式的“json”里没有,因为我把“HT...

2 个回答更新于 2020年1月24日

问题 #1431

从远程加载HTML文件

我把我的HTML内容托管在云端。然后在编辑器中尝试加载html内容时,我发现错误:“对预检请求的响应未通过访问控制检查:请求资源上没有'访问-控制-允许-起源'头部。因此,原点“http://localhost:3000”不被允许访问。如果不透明度响应符合你的需求,将请求模式设...

3 个回答更新于 2019年12月11日

问题 #1519

:在 grapesjs.init 中加入组件

能否在 grapesjs.init 上初始化组件。 我们没有使用 StorageManager.load。 我们已经在init时拿到了项目数据。 用 HTML 没问题,但用组件会把组件对象渲染成编辑器中的文本。 'this.editor = grapesjs.init({ co...

3 个回答更新于 2019年10月16日

问题 #620

远程存储

我尝试使用远程存储,但没成功,问题解决后我能尽力调整所有内容,但编辑器无法渲染加载的 HTML。 GrapesJS: JSON: '{“gjs-css”:“”, “gjs-html”:“<div>HELLO</div>”, “gjs-assets”:“[]”, “gjs-sty...

3 个回答更新于 2019年9月18日

与此问题匹配的付费插件

根据问题关键词和标签相关性精选,助你更快交付。

查看全部插件

正在加载付费插件推荐……

免费方案

在以下平台查看开源 GrapesJS 插件: GitHub 或在我们的免费目录中快速搜索。

浏览免费插件 →
高级方案

高级插件提供支持、定期更新和生产就绪的功能——为你节省数天的集成工作。

浏览高级插件 →

相关教程

关于同一主题的深入指南。

全部教程 →

浏览插件分类

直接跳转到市场上的插件分类页面。