рдХрд░рддрдм: рдШрдЯрдХ рдХреЛ рдЧрдВрджреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдВ
рдореИрдВрдиреЗ рдСрдирдмрд┐рдлреЛрд░рдЕрдирд▓реЛрдб рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдХреНрд╖рдо рдХрд░рдХреЗ рдФрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд░реЛрд▓ рдХрд░рдХреЗ рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд┐рдпрд╛ред
рдиреАрдЪреЗ рдкреВрд░рд╛ рдЙрддреНрддрд░ рдкрдврд╝реЗрдВ тЖУрдкреНрд░рд╢реНрди
рдЖрдк GrapesJS рдореЗрдВ рдХреНрдпрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдШрдЯрдХ рдХреЛ рдЦреБрдж рдХреЛ рдЧрдВрджреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд┐рд╕рд╕реЗ onbeforeunload рдЪреЗрддрд╛рд╡рдиреА рд╕рдВрджреЗрд╢ рдЯреНрд░рд┐рдЧрд░ рд╣реЛ рд╕рдХреЗред рдЕрдкрдиреЗ рдлреАрдЪрд░ рдЕрдиреБрд░реЛрдз рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ рд╡рд┐рд╕реНрддреГрдд рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ (рдХрд╕реНрдЯрдо) рдЯреЗрдХреНрд╕реНрдЯ рдШрдЯрдХ рд╣реИ рдЬрд╣рд╛рдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдордирдорд╛рдирд╛ рдЯреЗрдХреНрд╕реНрдЯ рджрд░реНрдЬ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рдЕрдкрдиреЗ рд╕рд░реНрд╡рд░ рдкрд░ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдореИрдВ рдСрдЯреЛрд╕реЗрд╡ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ рдХрд┐ рдЯреЗрдХреНрд╕реНрдЯ рдШрдЯрдХ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рд╣рд░ рдПрдХ рд╡рд░реНрдг рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдореМрдЬреВрдж рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рдорд╛рддреНрд░рд╛ рдХреЗ рд╕рд╛рде рдПрдХ рдмрдбрд╝реА рдмрд╛рдврд╝ рд╣реЛрдЧреАред рдореИрдВ stepsBeforeSave рдХреЛ рднреА рдмрджрд▓рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛, рдХреНрдпреЛрдВрдХрд┐ рдШрдЯрдХреЛрдВ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЦреА...
рдЬрд╡рд╛рдм (4)
рдореИрдВрдиреЗ рдСрдирдмрд┐рдлреЛрд░рдЕрдирд▓реЛрдб рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдХреНрд╖рдо рдХрд░рдХреЗ рдФрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд░реЛрд▓ рдХрд░рдХреЗ рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд┐рдпрд╛ред
рд╕рдВрдкрд╛рджрдХ рдХреЗ рдкрд╛рд╕ editing рд╕рдВрдкрддреНрддрд┐ рд╣реИ рдЬреЛ рдХрд┐рд╕реА рднреА рд╕рдордп рдЖрд░рдЯреАрдИ рд╕рдХреНрд╖рдо/рдЕрдХреНрд╖рдо рд╣реЛрдиреЗ рдкрд░ рдмрджрд▓ рдЬрд╛рддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдЖрдкрдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП
editor.on('change:editing', (em, editing) => {
window.onbeforeunload = editing || editor.getDirtyCount() ? e => 1 : null;
});
рдХреНрдпрд╛ рдпрд╣ onbeforeunload рд╣реИрдВрдбрд▓рд░ рдХреЛ рдмрд╛рдж рдореЗрдВ рдЙрд╕ рд╕реНрдирд┐рдкреЗрдЯ рджреНрд╡рд╛рд░рд╛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬрд┐рд╕рдХрд╛ рдореИрдВрдиреЗ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ?
рдЗрд╕рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, @anlumo ред FEAT: Component рдХреЛ рдЧрдВрджреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрдврд╝рд┐рдпрд╛ рд╕реБрдЭрд╛рд╡! рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реБрд╡рд┐рдзрд╛ рдЕрднреА рддрдХ рдХреЛрд░ API рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВред рдЗрд╡реЗрдВрдЯ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛: рд╡реИрдХрд▓реНрдкрд┐рдХ рджреГрд╖реНрдЯрд┐рдХреЛрдг: рд╕реАрдПрд╕рдПрд╕ рдЪрдпрдирдХрд░реНрддрд╛ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ...
рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рд╢реНрди рдФрд░ рдЙрддреНрддрд░
рдЗрд╕реА рддрд░рд╣ рдХреА рдореБрджреНрджреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╢реЛрдз рдЬрд╛рд░реА рд░рдЦреЗрдВред
рдЕрдВрдХ #3714
рдЖрдВрд╢рд┐рдХ рдкрд╛рд░реНрд╕
https://github.com/artf/grapesjs рдореЗрдВ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ/рдЪрд░реНрдЪрд╛/3711 <div type='discussions-op-text'> <рд╕реБрдк>рдореВрд▓ рд░реВрдк рд╕реЗ ltenti рджреНрд╡рд╛рд░рд╛ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ A...
рдЕрдВрдХ #3206
рдХрд░рддрдм: рдкреЗрдЬ рдореИрдиреЗрдЬрд░ рдкреНрд▓рдЧрдЗрди
рдлрд╝реАрдЪрд░: Grapesjs рдореЗрдВ рдХрдИ рдкреЗрдЬ рдмрдирд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ред рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдбрд┐рдЬрд╛рдЗрди рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░: [ ] рд╢реАрд░реНрд╖ рдмреИрдирд░ рдореЗрдВ 'рдбрд┐рд╡рд╛рдЗрд╕ [рдбреНрд░реЙрдкрдбрд╛рдЙрди рд╕реВрдЪреА]' рдХреЗ рджрд╛рдИрдВ рдУрд░ рдПрдХ рд▓рд┐рдВ...
рдЕрдВрдХ #3194
рдореИрдВ рд╕реНрдкреЗрдХреНрдЯреНрд░рдо рдХрд▓рд░ рдкрд┐рдХрд░ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реВрдВ?
рдореИрдВ GrapesJS рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд░рдВрдЧ рдмреАрдирдиреЗ рд╡рд╛рд▓реЗ рдХрд╛ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдореБрдЭреЗ рдХреБрдЫ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реНрддрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд▓рд┐рдП рд░рдВрдЧ рдмреАрдирдиреЗ рд╡рд╛рд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ...
рдЕрдВрдХ #3939
рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдореЗрдВ рдбреНрд░реИрдЧ рдФрд░ рдбреНрд░реЙрдк рдЕрдХреНрд╖рдо рдХрд┐рдпрд╛ рдЧрдпрд╛
GrapesJS рд╕рдВрд╕реНрдХрд░рдг[X] рдореИрдВ GrapesJS рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реВрдВ рдЖрдк рдХрд┐рд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рд╡реА95рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕...
рд╕рд╢реБрд▓реНрдХ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдЬреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ
рд╕рдорд╕реНрдпрд╛ рдХреАрд╡рд░реНрдб рдФрд░ рд▓реЗрдмрд▓ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ рджреНрд╡рд╛рд░рд╛ рдХреНрдпреВрд░реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдкрдХреЛ рддреЗрдЬрд╝реА рд╕реЗ рд╢рд┐рдк рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓ рд╕рдХреЗред
рд╕рд╢реБрд▓реНрдХ рдкреНрд▓рдЧрдЗрди рдЕрдиреБрд╢рдВрд╕рд╛рдПрдБ рд▓реЛрдб рд╣реЛ рд░рд╣реА рд╣реИрдВ ...
рдУрдкрди-рд╕реЛрд░реНрд╕ GrapesJS рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ GitHub рдпрд╛ рд╣рдорд╛рд░реЗ рдореБрдлреНрдд рдХреИрдЯрд▓реЙрдЧ рдореЗрдВ рдПрдХ рддреНрд╡рд░рд┐рдд рдЦреЛрдЬ рдЪрд▓рд╛рдПрдВред
рдореБрдлреНрдд рдкреНрд▓рдЧрдЗрдиреНрд╕ рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░реЗрдВ тЖТрдкреНрд░реАрдорд┐рдпрдо рдкреНрд▓рдЧрдЗрдиреНрд╕ рд╕рдорд░реНрдерди, рдирд┐рдпрдорд┐рдд рдЕрдкрдбреЗрдЯ рдФрд░ рдЙрддреНрдкрд╛рджрди-рддреИрдпрд╛рд░ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╢рд┐рдк рд╣реЛрддреЗ рд╣реИрдВ - рдПрдХреАрдХрд░рдг рдХрд╛рд░реНрдп рдХреЗ рджрд┐рдиреЛрдВ рдХреЛ рдмрдЪрд╛рддреЗ рд╣реИрдВред
рдкреНрд░реАрдорд┐рдпрдо рдкреНрд▓рдЧрдЗрдиреНрд╕ рдмреНрд░рд╛рдЙрдЬрд╝ рдХрд░реЗрдВ тЖТрд╕рдВрдмрдВрдзрд┐рдд рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓
рдПрдХ рд╣реА рд╡рд┐рд╖рдп рдкрд░ рдЧрд╣рди рдорд╛рд░реНрдЧрджрд░реНрд╢рд┐рдХрд╛рдПрдБред
рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓
GrapesJS рдХреЗ рд▓рд┐рдП рд╕реБрдкрд░ рдЯреВрд▓рдЯрд┐рдк - рд╕рдВрд╕реНрдХрд░рдг 0.1.5 рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ ЁЯОЙ
рд╣рдо рд╕реБрдкрд░ рдЯреВрд▓рдЯрд┐рдк рдХреЗ рд╡реА 0.1.5 рдЕрдкрдбреЗрдЯ рдХреА рдШреЛрд╖рдгрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрд╕рд╛рд╣рд┐рдд рд╣реИрдВ, рдЬреЛ GrapesJS рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░рд╛ рдлреНрд▓реЛрдЯрд┐рдВрдЧ-рдореЗрдиреВ рдФрд░ рдЯреВрд▓рдЯрд┐рдк рдкреНрд▓рдЧрдЗрди рд╣реИ
рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓
GrapesJS 2026 рдореЗрдВ: рдУрдкрди-рд╕реЛрд░реНрд╕ рд╡реЗрдм рдмрд┐рд▓реНрдбрд░ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд▓рд┐рдП рдкреВрд░реА рдЧрд╛рдЗрдб
2026 рдореЗрдВ рдорд╛рд╕реНрдЯрд░ GrapesJS ред рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░, рдХреЛрдб рдЙрджрд╛рд╣рд░рдг, React рдПрдХреАрдХрд░рдг, рдкреНрд▓рдЧрдЗрди рд╡рд┐рдХрд╛рд╕, рд╕реНрдЯреВрдбрд┐рдпреЛ рдПрд╕рдбреАрдХреЗ, рдФрд░ рдпрд╣ рдЕрдиреНрдп рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рддреБрд▓рдирд╛ рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реИ
рдмреНрд░рд╛рдЙрдЬрд╝ рдкреНрд▓рдЧрдЗрди рд╢реНрд░реЗрдгрд┐рдпрд╛рдБ
рд╕реАрдзреЗ рдмрд╛рдЬрд╝рд╛рд░ рдкрд░ рдкреНрд▓рдЧрдЗрди рд╢реНрд░реЗрдгреА рдХреЗ рдкреГрд╖реНрдареЛрдВ рдкрд░ рдЬрд╛рдПрдБред