Issue #1767Opened January 30, 2019by arachnosoft1 reactions

Ensure that getHtml() / runCommand("gjs-get-inlined-html") returns the very latest contents of the canvas

Question

Hi @artf ,

I ran into a similar, if not the same issue as this one: #1327

While editing a text block, I click on an external button to get the contents of the canvas, without leaving the cursor from the canvas.

At this point, if I call getHtml() or runCommand("gjs-get-inlined-html") (my grapesjs being loaded with the Newsletter plugin), both commands return the contents of the canvas in its previous state (= before I started editing my block) and not in its "current" state (i.e. with the text I was currently typing).

I guess this is by-design; It can easily be reproduced on the online demo:

grapesjs not updating until blur

To ensure that grapesjs validates the content I was typing before calling getHtml() / runCommand("gjs-get-inlined-html"), just like when you click elsewhere on the canvas to trigger the component's blur event and update, I had to call disableEditing() explicitely, like this:

if (editor.getModel().isEditing()) editor.getSelected().view.disableEditing();

Based on https://github.com/artf/grapesjs/issues/319#issuecomment-331069138

Just to be sure, you could simply confirm that it's the right way to do so? And, if so, could you add this point on the getHtml() function documentation? It could avoid many misunderstandings, IMO.

FYI, I was already aware of such issues with CKEditor, on which you have to call myCkEditorInstance.updateElement() right before myCkEditorInstance.getData(). That's why I supposed it wasn't a bug ;)

Answers (2)

artfFebruary 6, 20191 reactions

Yeah, this is exactly how it works. I'll try to check if I'm able to merge the temporary state before getting the HTML data

lock[bot]March 10, 20200 reactions

This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

Related Questions and Answers

Continue research with similar issue discussions.

Paid Plugins That Match This Issue

Curated by issue keywords and label relevance to help you ship faster.

View all plugins

Loading paid plugin recommendations...

Browse Plugin Categories

Jump directly to plugin category pages on the marketplace.