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

рдЕрдВрдХ #6705ЁЯТм рдЙрддреНрддрд░ рджрд┐рдпрд╛рдЦреЛрд▓рд╛ рдЧрдпрд╛ 13 рдлрд╝рд░рд╡рд░реА 2026рджреНрд╡рд╛рд░рд╛ saeedhbi1 рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдПрдВ

TypeError: рдХреБрдВрдЬреАрдкрдЯрд▓ рд╣реИрдВрдбрд▓рд░ рдореЗрдВ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд ('toLowerCase' рдкрдврд╝рдирд╛) рдХреЗ рдЧреБрдг рдирд╣реАрдВ рдкрдврд╝ рд╕рдХрддрд╛

рддреНрд╡рд░рд┐рдд рдЙрддреНрддрд░рджреНрд╡рд╛рд░рд╛ saeedhbiтЭд 1

рд╣рд╛рдп @artf, рдкреВрд░реНрдг рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рддреНрд░реБрдЯрд┐ GrapesJS рдореЗрдВ рдирд╣реАрдВ рд╣реИ . event.key.toLowerCase() рдХреЙрд▓ рд╣рдорд╛рд░реЗ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рд╕реЗ рдЖ рд░рд╣реА рд╣реИ - рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ window.addEventListener("keydown", ...) рд╣реИрдВрдбрд▓рд░ рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рдХреЛрдбрдмреЗрд╕ рдореЗрдВ рдХрд╣реАрдВ рдФрд░ рд╣реИ, рдЬреЛ GrapesJS рдХреЗ рд╕рд╛рде рдЪрд▓рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░рд╛ рд╡реЗрдмрдкреИрдХ рдПрдХ рд╣реА рдЦ...

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

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

GrapesJS рд╕рдВрд╕реНрдХрд░рдг [x] рдореИрдВ GrapesJS рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реВрдВ рдЖрдк рдХрд┐рд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ (рдХреНрд░реЛрдо, рд╕рдлрд╛рд░реА, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕, рдПрдЬ) рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдбреЗрдореЛ рд▓рд┐рдВрдХ https://jsfiddle.net/saeedhbi/tdsLa6qe/ рдмрдЧ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ рдмрдЧ рдХреЛ рдХреИрд╕реЗ рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ? рдПрдХ рдмреБрдирд┐рдпрд╛рджреА GrapeJS рд╕рдВрдкрд╛рджрдХ рдмрдирд╛рдПрдВ (рд╕рдВрд╕реНрдХрд░рдг 0.22.11 рдпрд╛ 0.22.14) рдХреИрдирд╡рд╛рд╕ рдореЗрдВ рдПрдХ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдШрдЯрдХ рдЬреЛрдбрд╝реЗрдВ рдЗрдирдкреБрдЯ рдлрд╝реАрд▓реНрдб рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░реЗрдВ рдПрдХ рдХреАрдмреЛрд░реНрдб рдЗрд╡реЗрдВрдЯ рднреЗрдЬреЗрдВ рдЬрд╣рд╛рдВ event.key IME рд░рдЪрдирд╛ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП undefined рд╣реИ (рдЬреНрдпрд╛рджрд╛рддрд░ рдЪреАрдиреА/рдЬрд╛рдкрд╛рдиреА/рдХреЛрд░рд┐рдпрд╛рдИ рдХреАрдмреЛрд░реНрдб рдореЗрдВ) рдХрдВрд╕реЛрд▓ рдореЗрдВ TypeError: Cannot read properties of undef...

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

saeedhbiтАв 18 рдлрд╝рд░рд╡рд░реА 2026

рд╣рд╛рдп @artf, рдкреВрд░реНрдг рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдореЗрдВ рдЧрд╣рд░рд╛рдИ рд╕реЗ рдЦреБрджрд╛рдИ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рддреНрд░реБрдЯрд┐ GrapesJS рдореЗрдВ рдирд╣реАрдВ рд╣реИ . event.key.toLowerCase() рдХреЙрд▓ рд╣рдорд╛рд░реЗ рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рд╕реЗ рдЖ рд░рд╣реА рд╣реИ - рдПрдХ рд╡реИрд╢реНрд╡рд┐рдХ window.addEventListener("keydown", ...) рд╣реИрдВрдбрд▓рд░ рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рдХреЛрдбрдмреЗрд╕ рдореЗрдВ рдХрд╣реАрдВ рдФрд░ рд╣реИ, рдЬреЛ GrapesJS рдХреЗ рд╕рд╛рде рдЪрд▓рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐...

artfтАв 18 рдлрд╝рд░рд╡рд░реА 2026

рдЕрд░реЗ @saeedhbi, рдЖрдк рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдорд╛рд░реЗ рдХреЛрдб рдореЗрдВ event.key.toLowerCase() рдХрд╣рд╛рдВ рджреЗрдЦрддреЗ рд╣реИрдВ? рдХреНрдпрд╛ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реИрдВ рдХрд┐ рдЖрдкрдХреА рддрд░рдл рд╕реЗ рдирд╣реАрдВ рдЖ рд░рд╣рд╛ рд╣реИ? рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, jsfiddle рдорджрджрдЧрд╛рд░ рдирд╣реАрдВ рд╣реИ, рдмрд╣реБрдд рдЕрдзрд┐рдХ AI рдврд▓рд╛рди рд▓рдЧрддрд╛ ЁЯШЕ рд╣реИ , рдпрд╣ рд╕рдВрдкрд╛рджрдХ рдХреЛ рд▓реЛрдб рднреА рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреВрд░реНрдг рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рд╕рд╛рдЭрд╛ рдХрд░...

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

GrapesJS рдХреЗ рдХреАрдмреЛрд░реНрдб рд╣реИрдВрдбрд▓рд░ рдореЗрдВ TypeError: Cannot read properties of undefined (reading 'toLowerCase') рдПрдХ рдЬреНрдЮрд╛рдд рд╕рдорд╕реНрдпрд╛ рд╣реИ рдЬреЛ рддрдм рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ рдЬрдм рдХреБрдЫ рдХреАрдмреЛрд░реНрдб рдЗрд╡реЗрдВрдЯ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЪреАрдиреА, рдЬрд╛рдкрд╛рдиреА рдпрд╛ рдХреЛрд░рд┐рдпрд╛рдИ рдЬреИрд╕реА рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЗрдирдкреБрдЯ рдореЗрдердб рдПрдбрд┐рдЯрд░реНрд╕ (рдЖрдИрдПрдордИ) рд╕реЗ GrapesJS рдХреИрдирд╡рд╛рд╕ рдХреЗ рднреАрддрд░ рдЗрдирдкреБ...

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

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

рдЕрдВрдХ #3861

JS рддреНрд░реБрдЯрд┐ рдЬрдм "s" рдпрд╛ "w" рдХреБрдВрдЬреА рджрдмрд╛рдПрдВ - рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреЗ рдЧреБрдгреЛрдВ рдХреЛ рдирд╣реАрдВ рдкрдврд╝ рд╕рдХрддрд╛ ('indexOf' рдкрдврд╝рдирд╛)

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

1 рдЙрддреНрддрд░рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ 16 рдЕрдХреНрдЯреВрдмрд░ 2021

рдЕрдВрдХ #6707

рдХреИрдирд╡рд╛рд╕ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдирд▓ ('hasFocus' рдкрдврд╝рдирд╛) рдХреЗ рдЧреБрдг рдирд╣реАрдВ рдкрдврд╝ рд╕рдХрддрд╛

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

1 рдЙрддреНрддрд░рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ 18 рдлрд╝рд░рд╡рд░реА 2026

рдЕрдВрдХ #5274

рд░реАрдорд┐рдХреНрд╕ рдХреЗ рдЕрдВрджрд░ рдкрд╛рд░реНрд╕рд░ рдмрдЧ

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

4 рдЙрддреНрддрд░рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ 7 рдЕрдЧрд╕реНрдд 2023

рдЕрдВрдХ #6706

TypeError: e.getRoot рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдирд╣реАрдВ рд╣реИ (рд╕реНрдЯрд╛рдЗрд▓ рдореИрдиреЗрдЬрд░ рдореЗрдВ рд░реЗрд╕ рдХреА рд╕реНрдерд┐рддрд┐)

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

3 рдЙрддреНрддрд░рдЕрдкрдбреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ 18 рдлрд╝рд░рд╡рд░реА 2026

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

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

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

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

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

рдУрдкрди-рд╕реЛрд░реНрд╕ 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 рдРрдк - рдкреНрд░рдХрд╛рд╢рди, рдХрд╕реНрдЯрдо рдбреЛрдореЗрди, рд▓реАрдб, рдЪреЗрдХрдЖрдЙрдЯ рдФрд░ рдПрдХ рдкреНрд▓рдЧрдЗрди рд▓реЛрдбрд░ред

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

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