Issue #3496đź’¬ AnsweredOpened May 28, 2021by anlumo1 reactions

Mark Component as Dirty

Quick answerby anlumo❤ 1

I worked around this by completely disabling the onbeforeunload handling and rolling my own.

Read full answer below ↓

Question

What are you trying to add to GrapesJS? Component should be able to mark themselves as dirty, triggering the onbeforeunload warning message. Describe your feature request detailed I have a (custom) text component where the user can enter arbitrary text. I'm storing the data on my server, and I want autosave. However, I don't want the server to be contacted for every single character added to the text component, since that would be a huge flood with the amount of users we have. I also don't want to change the stepsBeforeSave, because large changes like dragging around components should be save...

Answers (4)

anlumo• July 23, 2021

I worked around this by completely disabling the onbeforeunload handling and rolling my own.

artf• May 31, 2021

The editor has editing property which changes any time RTE is enabled/disabled, so I guess, in your case, this should work

editor.on('change:editing', (em, editing) => {
 window.onbeforeunload = editing || editor.getDirtyCount() ? e => 1 : null; 
});
anlumo• May 31, 2021

Wouldn't this onbeforeunload handler be overwritten afterwards by the snippet I referenced above?

GJSBlock• May 17, 2026

Thanks for reporting this, @anlumo. Great suggestion about FEAT: Mark Component as Dirty! While this specific feature isn't yet in the core API, there are several ways to achieve similar behavior. Using the event system: Alternative approaches: Listen to selector:add for CSS selector changes Use se...

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...

Free option

Check the open-source GrapesJS plugins on GitHub or run a quick search in our free catalog.

Browse free plugins →
Premium option

Premium plugins ship with support, regular updates, and production-ready features — save days of integration work.

Browse premium plugins →

Related tutorials

In-depth guides on the same topic.

All tutorials →

Browse Plugin Categories

Jump directly to plugin category pages on the marketplace.