我只是用mjml安装了示例的grapesjs编辑器,它根本不把MJML转换成HTML。错误在插件的小代码中。
我正在使用版本
Chrome控制台
grapesjs-mjml.min.js:2 Uncaught TypeError: Cannot read properties of undefined (reading 'replace')
at e.default (grapesjs-mjml.min.js:2:1267707)
at e.default (grapesjs-mjml.min.js:2:10566)
at d (grapesjs-mjml.min.js:2:1537200)
at u (grapesjs-mjml.min.js:2:1576336)
at Z.r.run (grapesjs-mjml.min.js:2:1576433)
at Z.r.callRun (grapes.min.js:2:353040)
at Object.runCommand (grapes.min.js:2:350114)
at Object.run (grapes.min.js:2:349652)
at Object.runCommand (grapes.min.js:2:883122)
at EmailEditor.getHtml (EmailEditor.ts:132:28)发布于 2022-05-17 06:17:29
问题在于包装mjml文档的<body>标记。您需要完全删除这个标签。关于gitgub的现有问题中的更多信息。
您的mjml代码如下:
<body>
<mjml>
<mj-head id="ilnn">
<mj-raw>
...
</mjml>
</body>会是这样的。
<mjml>
<mj-head id="ilnn">
<mj-raw>
...
</mjml>解决方案是重写包装器组件toHTML()方法。
const editor = grapesJS.init(editorConfig);
editor.getWrapper().toHTML = function(opts) {
return this.getInnerHTML(opts);
};https://stackoverflow.com/questions/72269001
复制相似问题