рдкреЗрдЬрдХрд┐рдЯ - рд╕реНрд╡-рд╣реЛрд╕реНрдЯреЗрдб GrapesJS рд╕рд╛рдЗрдЯ рдмрд┐рд▓реНрдбрд░, рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рдмреЗрдЪрд╛ рдЧрдпрд╛ред рдЬрд▓реНрджреА рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

рдЕрдВрдХ #5385ЁЯТм рдЙрддреНрддрд░ рджрд┐рдпрд╛рдЦреЛрд▓рд╛ рдЧрдпрд╛ 14 рд╕рд┐рддрдореНрдмрд░ 2023рджреНрд╡рд╛рд░рд╛ padcom0 рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдВ

GetDirtyCount() рд▓реЛрдб рдХреЗ рдмрд╛рдж рдЧреИрд░ рдирд┐рдпрддрд╛рддреНрдордХ

рддреНрд╡рд░рд┐рдд рдЙрддреНрддрд░рджреНрд╡рд╛рд░рд╛ artf

рд╕рдВрдкрд╛рджрдХ рдЖрдВрддрд░рд┐рдХ рд╕реНрдерд┐рддрд┐ рдкреЛрд╕реНрдЯ рд▓реЛрдб рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЛрдб рд╡рд┐рдХрд▓реНрдк рднреА рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛

рдиреАрдЪреЗ рдкреВрд░рд╛ рдЙрддреНрддрд░ рдкрдврд╝реЗрдВ тЖУ

рдкреНрд░рд╢реНрди

GrapesJS рд╕рдВрд╕реНрдХрд░рдг [X] рдореИрдВ GrapesJS рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реВрдВ рдЖрдк рдХрд┐рд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдХреНрд░реЛрдорд┐рдпрдо рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдбреЗрдореЛ рд▓рд┐рдВрдХ https://github.com/padcom/grapesjs-bug-dirty-count-non-deterministic/blob/master/index.html рдмрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ await load() рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ рддреЛ рдЧрдВрджреА рдЧрд┐рдирддреА рд╢реВрдиреНрдп рд╣реЛрддреА рд╣реИред рдЕрдЧрд▓реЗ рдИрд╡реЗрдВрдЯ рд▓реВрдк рдпрд╛ рдмрд╛рдж рдореЗрдВ рд╣реА рдЧрд┐рдирддреА рдмрдврд╝рд╛рдИ рдЬрд╛рддреА рд╣реИред рдЗрд╕рд▓рд┐рдП: 0 рдкреНрд░рд┐рдВрдЯ рдЖрдЙрдЯ рд▓реЗрдХрд┐рди рдПрдХ рдорд┐рд▓реАрд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж: рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 1 рд╣реИред рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рдХреЙрд▓ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж load(), рдпрджрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ #5373 рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╕рдВрдкрд╛рджрдХ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛...

рдЬрд╡рд╛рдм (4)

artfтАв 16 рд╕рд┐рддрдореНрдмрд░ 2023

рд╕рдВрдкрд╛рджрдХ рдЖрдВрддрд░рд┐рдХ рд╕реНрдерд┐рддрд┐ рдкреЛрд╕реНрдЯ рд▓реЛрдб рдХреЛ рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реЛрдб рд╡рд┐рдХрд▓реНрдк рднреА рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛

const storageOptions = {};
const loadOptions = { clear: true };
await editor.load(storageOptions, loadOptions);
editor.getDirtyCount(); // should always be 0 post load
padcomтАв 18 рд╕рд┐рддрдореНрдмрд░ 2023

рдзрдиреНрдпрд╡рд╛рдж! рдЕрдЧрд▓реА рд░рд┐рд▓реАрдЬ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВ!

artfтАв 19 рд╕рд┐рддрдореНрдмрд░ 2023

рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╣рд╛рдВ рдЙрдкрд▓рдмреНрдз рд╣реИ https://github.com/GrapesJS/grapesjs/releases/tag/v0.21.6

GJS HelperтАв 17 рдордИ 2026

рдЖрдкрдиреЗ editor.load() рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж GrapesJS рдХреА getDirtyCount() рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдордп рд╕рдорд╕реНрдпрд╛ рдХреА рд╕рдЯреАрдХ рдкрд╣рдЪрд╛рди рдХреА рд╣реИред рдпрд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░рдХреГрддрд┐ рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ GrapesJS рдЖрдВрддрд░рд┐рдХ рд╕реНрдерд┐рддрд┐ рдЕрдкрдбреЗрдЯ рдФрд░ рдИрд╡реЗрдВрдЯ рдЙрддреНрд╕рд░реНрдЬрди рдХреЛ рдХреИрд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИред рдореВрд▓ рдХрд╛рд░рдг рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдЬрдм editor.load() рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ...

рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рд╢реНрди рдФрд░ рдЙрддреНрддрд░

рдЗрд╕реА рддрд░рд╣ рдХреА рдореБрджреНрджреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╢реЛрдз рдЬрд╛рд░реА рд░рдЦреЗрдВред

рдЕрдВрдХ #3579

рдШрдЯрдХ рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рдареАрдХ рдмрд╛рдж рдЦреЛрд▓реЗ рдЬрд╛рдиреЗ рдкрд░ рдЖрд░рдЯреАрдИ `activeOnRender` рдЧрд▓рдд рдЬрдЧрд╣ рдкрд░ рд░рдЦрд╛ рдЧрдпрд╛

рд╕рдВрд╕реНрдХрд░рдг: 0.17.4 рдХреНрдпрд╛ рдЖрдк рдбреЗрдореЛ рд╕реЗ рдмрдЧ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ? [x] рд╣рд╛рдБ[ ] рдирд╣реАрдВ рдкреБрдирд░реБрддреНрдкрд╛рджрди рдХреЗ рдЪрд░рдг: рдбреЗрдореЛ рдкрд░ рдЬрд╛рдПрдВрдХреИрдирд╡рд╛рд╕ рдХреЗ рдЕрдВрджрд░ рдПрдХ "рдЯреЗрдХреНрд╕...

4 рдЙрддреНрддрд░рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ 17 рдЬрдирд╡рд░реА 2022

рдЕрдВрдХ #5144

PanelManager.addPanel рдХреЗ рд▓рд┐рдП рдЧрд▓рдд рдкреНрд░рдХрд╛рд░ рдХреА рдкрд░рд┐рднрд╛рд╖рд╛

GrapesJS рд╕рдВрд╕реНрдХрд░рдг [X] рдореИрдВ GrapesJS рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реВрдВ рдЖрдк рдХрд┐рд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рд╕рднреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░...

3 рдЙрддреНрддрд░рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ 13 рдЬреВрди 2023

рдЕрдВрдХ #3779

Editor.getSelected().toHTML() encodes inline javascript

GrapesJS рд╕рдВрд╕реНрдХрд░рдг[X] рдореИрдВ GrapesJS рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реВрдВ рдЖрдк рдХрд┐рд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдирд╡реАрдирддрдо (рдХреНрд░реЛрдо)рдкреНрд░рдд...

3 рдЙрддреНрддрд░рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ 22 рд╕рд┐рддрдореНрдмрд░ 2021

рдЕрдВрдХ #6671

`component.closestType()` рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ

GrapesJS рд╕рдВрд╕реНрдХрд░рдг [x] рдореИрдВ GrapesJS рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реВрдВ рдЖрдк рдХрд┐рд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдХреЛрдИ рднреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐...

2 рдЙрддреНрддрд░рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ 10 рджрд┐рд╕рдореНрдмрд░ 2025

рд╕рд╢реБрд▓реНрдХ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдЬреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ

рд╕рдорд╕реНрдпрд╛ рдХреАрд╡рд░реНрдб рдФрд░ рд▓реЗрдмрд▓ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ рджреНрд╡рд╛рд░рд╛ рдХреНрдпреВрд░реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдкрдХреЛ рддреЗрдЬрд╝реА рд╕реЗ рд╢рд┐рдк рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓ рд╕рдХреЗред

рд╕рднреА рдкреНрд▓рдЧрдЗрдиреНрд╕ рджреЗрдЦреЗрдВ

рд╕рд╢реБрд▓реНрдХ рдкреНрд▓рдЧрдЗрди рдЕрдиреБрд╢рдВрд╕рд╛рдПрдБ рд▓реЛрдб рд╣реЛ рд░рд╣реА рд╣реИрдВ ...

рдирд┐рдГрд╢реБрд▓реНрдХ рд╡рд┐рдХрд▓реНрдк

рдУрдкрди-рд╕реЛрд░реНрд╕ GrapesJS рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ GitHub рдпрд╛ рд╣рдорд╛рд░реЗ рдореБрдлреНрдд рдХреИрдЯрд▓реЙрдЧ рдореЗрдВ рдПрдХ рддреНрд╡рд░рд┐рдд рдЦреЛрдЬ рдЪрд▓рд╛рдПрдВред

рдореБрдлреНрдд рдкреНрд▓рдЧрдЗрдиреНрд╕ рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░реЗрдВ тЖТ
рдкреНрд░реАрдорд┐рдпрдо рд╡рд┐рдХрд▓реНрдк

рдкреНрд░реАрдорд┐рдпрдо рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╕рдорд░реНрдерди, рдирд┐рдпрдорд┐рдд рдЕрдкрдбреЗрдЯ рдФрд░ рдЙрддреНрдкрд╛рджрди-рддреИрдпрд╛рд░ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╢рд┐рдк рд╣реЛрддреЗ рд╣реИрдВ - рдПрдХреАрдХрд░рдг рдХрд╛рд░реНрдп рдХреЗ рджрд┐рдиреЛрдВ рдХреЛ рдмрдЪрд╛рддреЗ рд╣реИрдВред

рдкреНрд░реАрдорд┐рдпрдо рдкреНрд▓рдЧрдЗрдиреНрд╕ рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░реЗрдВ тЖТ

рд╕рдВрдмрдВрдзрд┐рдд рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓

рдПрдХ рд╣реА рд╡рд┐рд╖рдп рдкрд░ рдЧрд╣рди рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛рдПрдБред

рд╕рднреА рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ тЖТ

рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓

Introducing Search on GJS.Market

GJS.Market now has one search across everything we publish тАФ plugins, articles, community questions, guides, authors and services. Press тМШK from any page.

рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓

2026 рдореЗрдВ SaaS рдкреЗрдЬ рдмрд┐рд▓реНрдбрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рдХрд┐рддрдирд╛ рдЦрд░реНрдЪ рдЖрддрд╛ рд╣реИ?

2026 рдореЗрдВ SaaS рдкреЗрдЬ рдмрд┐рд▓реНрдбрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рдХрд┐рддрдирд╛ рдЦрд░реНрдЪ рдЖрддрд╛ рд╣реИ? рдпрдерд╛рд░реНрдерд╡рд╛рджреА рд╡рд┐рдХрд╛рд╕ рд▓рд╛рдЧрдд, рд╕рдордпрд╕реАрдорд╛, рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдФрд░ GrapesJS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЗрд╕рдХрд╛ рдЕрдиреНрд╡реЗрд╖рдг рдХрд░реЗрдВ

рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓

рдкреЗрдЬрдХрд┐рдЯ: GrapesJS рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рд╡реИрд╕реЗ рднреА рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛

рдУрдкрди-рд╕реЛрд░реНрд╕ GrapesJS рдХреЛрд░ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдПрдХ рд╕реНрд░реЛрдд-рдЙрдкрд▓рдмреНрдз Next.js рдРрдк - рдкреНрд░рдХрд╛рд╢рди, рдХрд╕реНрдЯрдо рдбреЛрдореЗрди, рд▓реАрдб, рдЪреЗрдХрдЖрдЙрдЯ рдФрд░ рдПрдХ рдкреНрд▓рдЧрдЗрди рд▓реЛрдбрд░ред

рдмреНрд░рд╛рдЙрдЬрд╝ рдкреНрд▓рдЧрдЗрди рд╢реНрд░реЗрдгрд┐рдпрд╛рдБ

рд╕реАрдзреЗ рдмрд╛рдЬрд╝рд╛рд░ рдкрд░ рдкреНрд▓рдЧрдЗрди рд╢реНрд░реЗрдгреА рдХреЗ рдкреГрд╖реНрдареЛрдВ рдкрд░ рдЬрд╛рдПрдБред