рд╣рд░ рдмрд╛рд░ рдЬрдм editor.loadData(data, opts) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕реНрдЯреЛрд░ рд╡рд┐рдзрд┐ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИред Storage.add("api-remote", {...}), рдЬреЛ 'рдПрдкреАрдЖрдИ-рд░рд┐рдореЛрдЯ рд╕реНрдЯреЛрд░' рд╕рдВрджреЗрд╢ рдХреЛ рд▓реЙрдЧ рдХрд░рддрд╛ рд╣реИ
рд╕реНрдЯреЛрд░реЗрдЬ рдХреЙрд▓ рдкрд░ рд╕реНрдЯреЛрд░ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдбрд╛рдпрдирд╛рдорд┐рдХ рд░реВрдк рд╕реЗ stepsBeforeSave рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдХреГрдкрдпрд╛ рдЕрдЧрд▓реА рдмрд╛рд░ рдЪрд░реНрдЪрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдмрдЧ рдирд╣реАрдВ рд╣реИ рдмрд▓реНрдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рд╢реНрди рд╣реИред
рдиреАрдЪреЗ рдкреВрд░рд╛ рдЙрддреНрддрд░ рдкрдврд╝реЗрдВ тЖУрдкреНрд░рд╢реНрди
GrapesJS рд╕рдВрд╕реНрдХрд░рдг [X] рдореИрдВ GrapesJS рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реВрдВ рдЖрдк рдХрд┐рд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? Chrome рдХрд╛ рд╕рдмрд╕реЗ рдирдпрд╛ рд╡рд░реНрд╢рди рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдбреЗрдореЛ рд▓рд┐рдВрдХ рд╢реВрдиреНрдп рдмрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ рдмрдЧ рдХреЛ рдХреИрд╕реЗ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ? рдпрд╣ рдЖрд╕рд╛рди рд╣реИ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреНрдпрд╛ рд╣реИ? рдореИрдВ рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдкреГрд╖реНрдареЛрдВ рдХреЛ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП editor.load рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рд╕рдВрдкрд╛рджрдХ рдирд╣реАрдВ рдЪрд╛рд╣рддрд╛ред рд╕реНрдЯреЛрд░реЗрдЬ рдХреЛ рд╣рд░ рдмрд╛рд░ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреНрдпрд╛ рд╣реИ? "рд╣рд░ рдмрд╛рд░ рдЬрдм editor.loadData(data, opts) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╕реНрдЯреЛрд░ рд╡рд┐рдзрд┐ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИред Storage.add("api-remote", {...}),...
рдЬрд╡рд╛рдм (2)
рд╕реНрдЯреЛрд░реЗрдЬ рдХреЙрд▓ рдкрд░ рд╕реНрдЯреЛрд░ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдк рдбрд╛рдпрдирд╛рдорд┐рдХ рд░реВрдк рд╕реЗ stepsBeforeSave рдЕрдкрдбреЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдХреГрдкрдпрд╛ рдЕрдЧрд▓реА рдмрд╛рд░ рдЪрд░реНрдЪрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдмрдЧ рдирд╣реАрдВ рд╣реИ рдмрд▓реНрдХрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рд╢реНрди рд╣реИред
рдЖрдк рдЬрд┐рд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬрд╣рд╛рдВ editor.loadData(data, opts) рдЖрдкрдХреЗ рдХрд╕реНрдЯрдо рд╕реНрдЯреЛрд░реЗрдЬ рдХреА store рд╡рд┐рдзрд┐ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ, рднреНрд░рдо рдХрд╛ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдмрд┐рдВрджреБ рд╣реИ, рд▓реЗрдХрд┐рди loadData рдореЗрдВ рдХреЛрдИ рдмрдЧ рдирд╣реАрдВ рд╣реИред editor.loadData рд╡рд┐рдзрд┐ рдХреЛ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдбреЗрдЯрд╛ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рд╕реЗрдЯ...
рд╕рдВрдмрдВрдзрд┐рдд рдкреНрд░рд╢реНрди рдФрд░ рдЙрддреНрддрд░
рдЗрд╕реА рддрд░рд╣ рдХреА рдореБрджреНрджреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╢реЛрдз рдЬрд╛рд░реА рд░рдЦреЗрдВред
рдЕрдВрдХ #3622
I18n рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛
рд╕рдВрд╕реНрдХрд░рдг: рдирд╡реАрдирддрдо рдХреНрдпрд╛ рдЖрдк рдбреЗрдореЛ рд╕реЗ рдмрдЧ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ? [] рд╣рд╛рдБ[ ] рдирд╣реАрдВ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреНрдпрд╛ рд╣реИ? рд╕рдВрдкрд╛рджрдХ рдХреЗ рд▓рд┐рдПред I18n.setLocale("...
рдЕрдВрдХ #3731
рдИрд╡реЗрдВрдЯ рдХреЗ рд╕рд╛рде рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдкрд╛рда рддрддреНрд╡ рдХреЛ рджреЛ рдмрд╛рд░ рдЪреБрдирд╛ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛
рд╕рдВрд╕реНрдХрд░рдг: 0.17.25 рдХреНрдпрд╛ рдЖрдк рдбреЗрдореЛ рд╕реЗ рдмрдЧ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ? [ ] рд╣рд╛рдБ[x] рдирд╣реАрдВ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреНрдпрд╛ рд╣реИ? рдкрд╛рда рдкреНрд░рдХрд╛рд░ рдХреЗ рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рдШрдЯрдХ...
рдЕрдВрдХ #3343
KeepEmptyTextNodes рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рдЕрд╡реИрдз рдЗрдирд╡реЛрдХреЗрд╢рди рддреНрд░реБрдЯрд┐
рд╡рд┐рд╡рд░рдг: 0.16.44 рдХреНрдпрд╛ рдЖрдк рдбреЗрдореЛ рд╕реЗ рдмрдЧ рдХреЛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИрдВ? [x] рд╣рд╛рдБ[ ] рдирд╣реАрдВ рдХрдВрд╕реЛрд▓ рдореЗрдВ editor.Parser.getConfig().keepEmptyTextNodes =...
рдЕрдВрдХ #4851
This.on('change:attributes:type', this.handleTypeChange) рд╕рд░рдгреА рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ
GrapesJS рд╕рдВрд╕реНрдХрд░рдг[X] рдореИрдВ GrapesJS рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реВрдВ рдЖрдк рдХрд┐рд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдХреНрд░реЛрдо 108.0.5359.1...
рд╕рд╢реБрд▓реНрдХ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдЬреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ
рд╕рдорд╕реНрдпрд╛ рдХреАрд╡рд░реНрдб рдФрд░ рд▓реЗрдмрд▓ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ рджреНрд╡рд╛рд░рд╛ рдХреНрдпреВрд░реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдЖрдкрдХреЛ рддреЗрдЬрд╝реА рд╕реЗ рд╢рд┐рдк рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдорд┐рд▓ рд╕рдХреЗред
рд╕рд╢реБрд▓реНрдХ рдкреНрд▓рдЧрдЗрди рдЕрдиреБрд╢рдВрд╕рд╛рдПрдБ рд▓реЛрдб рд╣реЛ рд░рд╣реА рд╣реИрдВ ...
рдУрдкрди-рд╕реЛрд░реНрд╕ 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 рдореЗрдВ GrapesJS рдХреЗ рд╕рд╛рде AI-рд╕рдВрдЪрд╛рд▓рд┐рдд рдкреЗрдЬ рдмрд┐рд▓реНрдбрд░ рдХреИрд╕реЗ рдмрдирд╛рдПрдВ
рд╣рдордиреЗ GJSDocs рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рд╕реАрдЦрд╛ - рд╕рд░рд▓ AI рдЯреЗрдХреНрд╕реНрдЯ рдЬрдирд░реЗрд╢рди рд╕реЗ рд▓реЗрдХрд░ рд╕рдВрд░рдЪрд┐рдд, рд╕рдВрджрд░реНрдн-рдЬрд╛рдЧрд░реВрдХ рджреГрд╢реНрдп рд╕рдВрдкрд╛рджрди рддрдХ
рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓
2026 рдореЗрдВ SaaS рдкреЗрдЬ рдмрд┐рд▓реНрдбрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рдХрд┐рддрдирд╛ рдЦрд░реНрдЪ рдЖрддрд╛ рд╣реИ?
2026 рдореЗрдВ SaaS рдкреЗрдЬ рдмрд┐рд▓реНрдбрд░ рдмрдирд╛рдиреЗ рдореЗрдВ рдХрд┐рддрдирд╛ рдЦрд░реНрдЪ рдЖрддрд╛ рд╣реИ? рдпрдерд╛рд░реНрдерд╡рд╛рджреА рд╡рд┐рдХрд╛рд╕ рд▓рд╛рдЧрдд, рд╕рдордпрд╕реАрдорд╛, рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдФрд░ GrapesJS рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЗрд╕рдХрд╛ рдЕрдиреНрд╡реЗрд╖рдг рдХрд░реЗрдВ
рдмреНрд░рд╛рдЙрдЬрд╝ рдкреНрд▓рдЧрдЗрди рд╢реНрд░реЗрдгрд┐рдпрд╛рдБ
рд╕реАрдзреЗ рдмрд╛рдЬрд╝рд╛рд░ рдкрд░ рдкреНрд▓рдЧрдЗрди рд╢реНрд░реЗрдгреА рдХреЗ рдкреГрд╖реНрдареЛрдВ рдкрд░ рдЬрд╛рдПрдБред