рдХреБрдЫ рд╕рдордп рдмрд╛рдж, рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЧрдпрд╛ рдХрд┐ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХрд╛ рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рджреБрдирд┐рдпрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдореЗрдВ рдЖрдпрд╛ рдерд╛ред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдирд┐рд░реНрдорд╛рддрд╛рдУрдВ рдиреЗ рдирдП рдПрдкреАрдЖрдИ рдЬреЛрдбрд╝рдХрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдкреБрдирд░реБрджреНрдзрд╛рд░ рдХрд╛ рдЬрд╡рд╛рдм рджрд┐рдпрд╛, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХрдИ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рд╕рдВрдШрд░реНрд╖ рдХрд░рддреЗ рд╣реИрдВред
- рд╕реИрдо рд╕реНрдЯреАрдлреЗрдВрд╕рди, рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ред рдЬреЗрдПрд╕, рдпреВ рдЖрд░ рдиреЙрдЯ рдпреЛрд░ рдХреЛрдб
рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛ рд╕рд╛рдордВрдЬрд╕реНрдпрдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реИрдВред рдирдП рдПрдкреАрдЖрдИ рдкрд░ рдирд┐рд░реНрдгрдп рдУрдкрдирд╕реЛрд░реНрд╕ рд╕рдореБрджрд╛рдпреЛрдВ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд░реБрдЭрд╛рдиреЛрдВ рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЪреВрдВрдХрд┐
prototyp.js рдиреЗ
Array.prototype.forEach()
,
map()
, рдЖрджрд┐ рдХреЗ рдЙрджреНрднрд╡ рдореЗрдВ рдпреЛрдЧрджрд╛рди рджрд┐рдпрд╛,
HTMLElement.prototype.querySelector()
рдФрд░
querySelectorAll()
рдкрд░
jquery рдкреНрд░реЗрд░рд┐рдд рдбреЗрд╡рд▓рдкрд░реНрд╕ред
рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд╛рдЗрдб рдХреЛрдб рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдФрд░ рд╕реНрд╡реИрдЪреНрдЫрд┐рдХ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдХрдИ рдЪреМрдЦрдЯреЗ рдЙрднрд░ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдЗрд╕ рдЕрд░рд╛рдЬрдХрддрд╛ рдХреЛ рдирд┐рдпрдВрддреНрд░рдг рдореЗрдВ рд░рдЦрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддреЗ рд╣реИрдВред
рдмреИрдХрдмреЛрди ,
рдПрдореНрдмрд░ ,
рдХреЛрдгреАрдп рдФрд░ рдЕрдиреНрдп рдХреЛ рд╕реНрд╡рдЪреНрдЫ, рдореЙрдбреНрдпреВрд▓рд░ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЖрд╡реЗрджрди рд╕реНрддрд░ рдХреА рд░реВрдкрд░реЗрдЦрд╛ рдПрдХ рдкреНрд░рд╡реГрддреНрддрд┐ рд╣реИред рдЙрдирдХреА рднрд╛рд╡рдирд╛ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЬреЗрдПрд╕ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдореМрдЬреВрдж рд░рд╣реА рд╣реИред рдЖрд╢реНрдЪрд░реНрдп рдирд╣реАрдВ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рддрд╛рдУрдВ рдиреЗ рдЗрд╕ рдкрд░ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рд╡реЗрдм рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ рдорд╛рдирдХреЛрдВ рдХрд╛ рдПрдХ
рдбреНрд░рд╛рдлреНрдЯ рд╕реЗрдЯ рд╣реИред рдпрд╣ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдФрд░ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ Google рд╕реЗ рд▓реЛрдЧреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкрджреЛрдиреНрдирдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдкрд╣рд▓ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореЛрдЬрд╝рд┐рд▓рд╛ рдореЗрдВ рд╕рдорд░реНрдерд┐рдд рдереАред рдФрд░ рдорд╛рдЗрдХреНрд░реЛрд╕реЙрдлреНрдЯред рдмрд╕ рдордЬрд╛рдХ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, Microsoft рдмрд┐рд▓реНрдХреБрд▓ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рд╣реИред рд╕рдореБрджрд╛рдп рдореЗрдВ рд░рд╛рдп рд╡рд┐рд░реЛрдзрд╛рднрд╛рд╕реА рд╣реИрдВ (рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ, рд▓реЗрдЦреЛрдВ рдЖрджрд┐ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП)ред
рдореВрд▓ рд╡рд┐рдЪрд╛рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реНрд╕ рдХреЛ рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рдиреЗ рджреЗрдирд╛ рд╣реИред рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рдЯреБрдХрдбрд╝реЗ рдЬреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рд╡реЗ рдПрдореНрдмреЗрдбреЗрдб рд╣реИрдВред HTML рдФрд░ JS API рджреЛрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡рд┐рдЬреЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред
рдореИрдВрдиреЗ рдХреБрдЫ рд╣рдлрд╝реНрддреЗ рдХреЗ рд▓рд┐рдП рдирдП рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рд╛ рдФрд░ рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдХрд┐рд╕реА рди рдХрд┐рд╕реА рд░реВрдк рдореЗрдВ, рдЬрд▓реНрджреА рдпрд╛ рдмрд╛рдж рдореЗрдВ, рдпреЗ рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╣реЛрдВрдЧреАред рд╣рд╛рд▓рд╛рдБрдХрд┐,
рдХреНрд░реЛрдо рдХреИрдирд░реА рдореЗрдВ рдЙрдирдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдиреЗ рдХрднреА-рдХрднреА рдореБрдЭреЗ (рдореБрдЭреЗ, рдФрд░ рдХреНрд░реЛрдо рдХреИрдирд░реА рдХреЛ) рдЪрдХрд┐рдд рдХрд░ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рд╡реЗрдм рдХрдВрдкреЛрдиреЗрдВрдЯ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдХрд░рдг рдЧрд╛рдпрдм рдерд╛ред
рд╡реЗрдм рдШрдЯрдХ рдорд╛рдирдХ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рднрд╛рдЧ рд╣реЛрддреЗ рд╣реИрдВ:
- рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕
HTML рд╕реНрдирд┐рдкреЗрдЯ рдЬрд┐рд╕реЗ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реИред
<template>
рдЯреИрдЧ рдХреА рд╕рд╛рдордЧреНрд░реА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░реНрд╕ рдХреА рдЬрд╛рддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрд╕рд╛рдзрдиреЛрдВ (рдЫрд╡рд┐рдпреЛрдВ, рдСрдбрд┐рдпреЛ ...) рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рдмрдирддреА рд╣реИ рдЬрдм рддрдХ рдХрд┐ рд╣рдо рдЗрд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдирд╣реАрдВ рдбрд╛рд▓рддреЗред
- рдЫрд╛рдпрд╛ рдбреЛрдо
HTML рдПрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдЯреВрд▓ред
рд╢реИрдбреЛ рдбреЛрдо рдЖрдкрдХреЛ HTML рддрддреНрд╡реЛрдВ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдмрд╛рд╣рд░реА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред рдПрдХ рдорд╣рд╛рди рдЙрджрд╛рд╣рд░рдг рд╣реИ <audio>
рдФрд░ <video>
рддрддреНрд╡ред рдХреЛрдб рдореЗрдВ рд╣рдо рдПрдХ рдЯреИрдЧ рд▓рдЧрд╛рддреЗ рд╣реИрдВ, рдФрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХрдИ рддрддреНрд╡реЛрдВ (рд╕реНрд▓рд╛рдЗрдбрд░реНрд╕, рдмрдЯрди, рдкреНрд▓реЗрдпрд░ рд╡рд┐рдВрдбреЛ) рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдХреНрд░реЛрдо рдореЗрдВ, рдпреЗ рдФрд░ рдХреБрдЫ рдЕрдиреНрдп рддрддреНрд╡ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ
рдЫрд╛рдпрд╛ рдбреЛрдоред
- рдХрд╕реНрдЯрдо рддрддреНрд╡
рдХрд╕реНрдЯрдо рддрддреНрд╡ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ HTML рддрддреНрд╡реЛрдВ рдХреЗ рд▓рд┐рдП API рдмрдирд╛рдиреЗ рдФрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рджреЗрддреЗ рд╣реИрдВред рдХрднреА рдЕрдкрдиреЗ HTML рдореЗрдВ <menu>
рдпрд╛ <user-info>
рдЯреИрдЧ рд╣реЛрдиреЗ рдХрд╛ рд╕рдкрдирд╛ рджреЗрдЦрд╛ рд╣реИ?
- рдЖрдпрд╛рдд
рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдорд╛рд░реНрдХрдЕрдк рдЯреБрдХрдбрд╝реЗ рдЖрдпрд╛рдд рдХрд░реЗрдВред
рд╡реЗрдм рдХрдВрдкреЛрдиреЗрдВрдЯ рдореЗрдВ рдЕрдзрд┐рдХ рднрд╛рдЧ рдФрд░ рдЫреЛрдЯреЗ рднрд╛рдЧ рд╣реЛрддреЗ рд╣реИрдВред рдореИрдВ рдЕрднреА рднреА рдХреБрдЫ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдореИрдВ рдЕрднреА рддрдХ рдХреБрдЫ рдирд╣реАрдВ рдкрд╣реБрдВрдЪрд╛ рд╣реВрдВред
рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕
рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рд╕рд░рд▓ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдорд╛рдирдХ рдореЗрдВ рдЗрд╕ рд╢рдмреНрдж рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╣рдо рдХрд┐рд╕ рдЪреАрдЬрд╝ рдХреЗ рдЕрднреНрдпрд╕реНрдд рд╣реИрдВред
рдЖрдзреБрдирд┐рдХ рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ, DOM рдХреЗ рддрд╛рд░ рдпрд╛ рдЯреБрдХрдбрд╝реЗ рд╣реЛрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдбреЗрдЯрд╛ рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рд╡реЗрдм рдШрдЯрдХреЛрдВ рдореЗрдВ, рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ DOM рдХреЗ рдЯреБрдХрдбрд╝реЗ рд╣реИрдВред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЙрдирдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рддрдм рддрдХ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬрдм рддрдХ рд╣рдо рдЗрд╕реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдкреЗрд╕реНрдЯ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣реА рд╣реИ, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЪрд┐рддреНрд░реЛрдВ, рдСрдбрд┐рдпреЛ рдФрд░ рд╡реАрдбрд┐рдпреЛ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдорд╛рд░реНрдХрдЕрдк рдХрд╛ рдРрд╕рд╛ рдЯреБрдХрдбрд╝рд╛ рдЫрд╡рд┐ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рд╣реЛрдЧрд╛ред
<template id="tmpl-user"> <h2 class="name"> </h2> <img src="photo.jpg"> </template>
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░
<template>
рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░реЗрдЧрд╛ред рдЖрдк рдЗрд╕реЗ js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
var tmpl = document.querySelector('#tmpl-user');
рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг
рдпрд╣рд╛рдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛
рд╣реИ ред
рд▓реЗрдЦ рдореЗрдВ рд╕рднреА рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдЭрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдХреНрд░реЛрдо рдХреИрдирд░реА рдореЗрдВ рджреЗрдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
- рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд╡реЗрдм рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕реБрд╡рд┐рдзрд╛рдПрдБ
- HTML рдЖрдпрд╛рдд рд╕рдХреНрд╖рдо рдХрд░реЗрдВ
- рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ
рдХрд┐рд╕ рд▓рд┐рдП?
рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддреАрди рддрд░реАрдХреЗ рд╣реИрдВ:
- рдкреГрд╖реНрда рдкрд░ рдПрдХ рдЫрд┐рдкреЗ рд╣реБрдП рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЬреЛрдбрд╝реЗрдВред рдЬрдм рдЙрд╕рдХреА рдЬрд░реВрд░рдд рд╣реЛрдЧреА
рдХреЙрдкреА рдФрд░ рд╕реНрдерд╛рдирд╛рдкрдиреНрди рдбреЗрдЯрд╛:
<div hidden data-template="my-template"> <p>Template Content</p> <img></img> </div>
рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдиреБрдХрд╕рд╛рди рдпрд╣ рд╣реИрдВ рдХрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛрдб рдХреЛ "рдирд┐рд╖реНрдкрд╛рджрд┐рдд" рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдЧрд╛ред рдпрд╛рдиреА рдЪрд┐рддреНрд░ рдЕрдкрд▓реЛрдб рдХрд░реЗрдВ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ, рдЖрджрд┐ред
- рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ (AJAX рдпрд╛
<script type="x-template">
рд╕реЗ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ)ред
<sctipt type="x-template" data-template="my-template"> <p>Template Content</p> <img src="{{ image }}"></img> </script>
рдирдХрд╛рд░рд╛рддреНрдордХ рдкрдХреНрд╖ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рд╕реЗ XSS рдХреЛ рдЦрддрд░рд╛ рд╣реИ, рдмрдЪрдиреЗ рдкрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдзреНрдпрд╛рди рджреЗрдирд╛ рд╣реЛрдЧрд╛ред
- рд╣реЛрдЧрди.рдЬреИрд╕ рдЬреИрд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдЯреЗрдореНрдкрд▓реЗрдЯ рднреА рддрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдЙрдирдХреЗ рдкрд╛рд╕ рджреВрд╕рд░реЗ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯреНрд╕ рдХреЗ рд╕рдорд╛рди рджреЛрд╖ рд╣реИред
<template>
рдореЗрдВ рдпреЗ рджреЛрд╖ рдирд╣реАрдВ рд╣реИрдВред рд╣рдо DOM рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рдирд╣реАрдВред рдЬрдм рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рд╣рдорд╛рд░реЗ рдКрдкрд░ рд╣реИред
рдЫрд╛рдпрд╛ рдбреЛрдо
Encapsulationред рдорд╛рд░реНрдХрдЕрдк рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди рдореБрдЭреЗ рд╕рдмрд╕реЗ рдЬреНрдпрд╛рджрд╛ рдпрд╛рдж рдЖрддреА рд╣реИред рд╢реИрдбреЛ рдбреЛрдо рдХреНрдпрд╛ рд╣реИ рдФрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрд╣ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реИред
рдЬрдм рд╣рдо html5 рддрддреНрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ
<audio>
рддрддреНрд╡ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
<audio controls src="kings-speech.wav"></audio>
рд▓реЗрдХрд┐рди рдкреЗрдЬ рдкрд░ рдРрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

рд╣рдо рдмрд╣реБрдд рд╕рд╛рд░реЗ рдирд┐рдпрдВрддреНрд░рдг, рдкреНрд░рдЧрддрд┐ рдмрд╛рд░, рдСрдбрд┐рдпреЛ рд▓рдВрдмрд╛рдИ рд╕рдВрдХреЗрддрдХ рджреЗрдЦрддреЗ рд╣реИрдВред рдпреЗ рддрддреНрд╡ рдХрд╣рд╛рдВ рд╕реЗ рдЖрддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реИ? рдЗрд╕рдХрд╛ рдЙрддреНрддрд░ рд╣реИ рдХрд┐ рд╡реЗ рддрддреНрд╡ рдХреЗ рд╢реИрдбреЛ рдЯреНрд░реА рдореЗрдВ рд╣реИрдВред рд╣рдо рдЪрд╛рд╣рдХрд░ рднреА рдЙрдиреНрд╣реЗрдВ DevTools рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред
Chrome рдХреЗ рд▓рд┐рдП DevTools рдореЗрдВ рд╢реИрдбреЛ рдбреЛрдо рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, DevTools рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ, рд╕рд╛рдорд╛рдиреНрдп рдЯреИрдм, рдПрд▓рд┐рдореЗрдВрдЯреНрд╕ рд╕реЗрдХреНрд╢рди, Show Shadow DOM рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред
DevTools рдореЗрдВ рд╢реИрдбреЛ рдбреЛрдо
<audio>
рдХреА рд╕рд╛рдордЧреНрд░реА:
рдЙрджрд╛рд╣рд░рдг рд▓рд┐рдВрдХрдЫрд╛рдпрд╛ рдбреЛрдо рд╕рд┐рджреНрдзрд╛рдВрдд
рд╢реИрдбреЛ рдЯреНрд░реА рдПрдХ рд╕рдмрдЯреНрд░реА рд╣реЛрддреА рд╣реИ рдЬреЛ рдХрд┐рд╕реА рдбреЙрдХреНрдпреВрдореЗрдВрдЯ рдореЗрдВ рдПрдХ рдПрд▓рд┐рдореЗрдВрдЯ рд╕реЗ рдЬреБрдбрд╝реА рд╣реЛрддреА рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рддрддреНрд╡ рдХреЛ
рд╢реИрдбреЛ рд╣реЛрд╕реНрдЯ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░
рдЫрд╛рдпрд╛ рдкреЗрдбрд╝ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ, рддрддреНрд╡ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддрд╛ рд╣реИред
рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдКрдкрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ
<audio>
рдЯреИрдЧ рдХреЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИ; рдЗрд╕рдХреЗ рд╕реНрдерд╛рди рдкрд░, рдмреНрд░рд╛рдЙрдЬрд╝рд░
рдЫрд╛рдпрд╛ рдкреЗрдбрд╝ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред
рд╢реИрдбреЛ рдбреЛрдо рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐
<style>
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╢реИрд▓рд┐рдпрд╛рдБ рдореВрд▓ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрд░ рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЫрд╛рдпрд╛ рд╡реГрдХреНрд╖ рдХреА рд╕рд╛рдордЧреНрд░реА рдкрд░ рдореВрд▓ рджрд╕реНрддрд╛рд╡реЗрдЬ рдХреА рд╢реИрд▓рд┐рдпреЛрдВ рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рд╕реАрдорд┐рдд рдХрд░рдиреЗ рдХрд╛ рднреА рдЕрд╡рд╕рд░ рд╣реИред рдЙрд╕ рдкрд░ рдФрд░ рдмрд╛рдж рдореЗрдВред
рдПрдХ рдЫрд╛рдпрд╛рджрд╛рд░ рдкреЗрдбрд╝ рд▓рдЧрд╛рдУ
рд╢реИрдбреЛ рдбреЛрдо рдПрдкреАрдЖрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдФрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ
рдЫрд╛рдпрд╛ рд╡реГрдХреНрд╖ рдХреА рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░реЗрдВред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ <div class="shadow-host"> . </div> <script> var shadowHost = document.querySelector('.shadow-host'); var shadowRoot = shadowHost.createShadowRoot(); shadowRoot.innerText = ' .' </script>
рдкрд░рд┐рдгрд╛рдо:

рдЙрджрд╛рд╣рд░рдг рд▓рд┐рдВрдХрдЕрдиреБрдорд╛рди, <content>
рдПрдХ рдкреНрд░рдХреНрд╖реЗрдкрдг рдПрдХ
рдЫрд╛рдпрд╛ рдкреЗрдбрд╝ рдореЗрдВ рдореЗрдЬрдмрд╛рди рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ
рд╣реЛрддрд╛ рд╣реИ ред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдорд╛рдирдХ рдореЗрдВ
<content>
ред
рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ <content>
рд╣реЛрд╕реНрдЯ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рд╣реЛрд╕реНрдЯ рд╕реЗ рдЫрд╛рдпрд╛ рдЯреНрд░реА рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореЗрдЬрдмрд╛рди рдХреЗ рд╡рдВрд╢рдЬ рдЕрдкрдиреЗ рд╕реНрдерд╛рди рдкрд░ рдмрдиреЗ рд░рд╣рддреЗ рд╣реИрдВ, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рд╢реИрд▓рд┐рдпрд╛рдБ (рдФрд░ рдЫрд╛рдпрд╛ рд╡реГрдХреНрд╖ рдирд╣реАрдВ) рдЙрди рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддреА рд╣реИрдВред <content>
рджреБрдирд┐рдпрд╛ рдХреЗ рдмреАрдЪ рдПрдХ рддрд░рд╣ рдХреА рдЦрд┐рдбрд╝рдХреА рд╣реИред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ <template id="content-tag"> <p> <strong>shadow tree</strong>. </p> <p> <strong>shadow host</strong>: </p> <content></content> </template> <div class="shadow-host"> <h1 class="name"></h1> <img src="varlam.png"> <p class="description"> </p> </div> <script> var host = document.querySelector('.shadow-host'), template = document.querySelector('#content-tag'), shadow = host.createShadowRoot(); shadow.appendChild(template.content); </script>
рдкрд░рд┐рдгрд╛рдо:

рдЙрджрд╛рд╣рд░рдг рд▓рд┐рдВрдХрд╢реИрдбреЛ рдбреЛрдо рдореЗрдВ рд╢реИрд▓рд┐рдпрд╛рдБ
рд╢реИрд▓рд┐рдпреЛрдВ рдХрд╛ рдЗрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди
рд╢реИрдбреЛ рдбреЛрдо рдХреА рдореБрдЦреНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред рдПрдХ
рдЫрд╛рдпрд╛ рд╡реГрдХреНрд╖ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╢реИрд▓рд┐рдпрд╛рдБ рдЗрд╕ рд╡реГрдХреНрд╖ рдХреЗ рдЕрдВрджрд░ рд╣реА рд╢рдХреНрддрд┐ рд╣реЛрддреА рд╣реИрдВред
рдПрдХ рдХрд╖реНрдЯрдкреНрд░рдж рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк
рдЫрд╛рдпрд╛ рдкреЗрдбрд╝ рдореЗрдВ рдмрд╛рд╣рд░реА рд╕реАрдПрд╕рдПрд╕ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдпрд╣ рддрдп рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ <template id="color-green"> <style> div { background-color: green; } </style> <div></div> </template> <div class="shadow-host"></div> <script> var host = document.querySelector('.shadow-host'), template = document.querySelector('#color-green'), shadow = host.createShadowRoot(); shadow.appendChild(template.content); </script>
рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╣рд░реЗ рд░рдВрдЧ рдХреА рдкреГрд╖реНрдарднреВрдорд┐ рдЫрд╛рдпрд╛ рд╡реГрдХреНрд╖ рдХреЗ рдЕрдВрджрд░ рдХреЗрд╡рд▓ `<div>` рдкреНрд░рд╛рдкреНрдд рд╣реЛрдЧреАред
рдРрд╕реА рд╢реИрд▓рд┐рдпрд╛рдБ рд╣реИрдВ рдЬреЛ рдореБрдЦреНрдп рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдкреНрд░рд╡рд╛рд╣рд┐рдд рдирд╣реАрдВ рд╣реЛрддреА рд╣реИрдВред
рдкрд░рд┐рдгрд╛рдо:

рдЙрджрд╛рд╣рд░рдг рд▓рд┐рдВрдХрдирд┐рд╣рд┐рдд рд╢реИрд▓реА
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рд╢реИрд▓рд┐рдпрд╛рдБ рдЬреИрд╕реЗ
color
,
font-size
рдФрд░
рдЕрдиреНрдп рдЫрд╛рдпрд╛ рд╡реГрдХреНрд╖ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ
рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдЗрд╕рд╕реЗ
shadowRoot.resetStyleInheritance = true
рдпрджрд┐ рд╣рдо
shadowRoot.resetStyleInheritance = true
рд╕реЗрдЯ
shadowRoot.resetStyleInheritance = true
ред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ <template id="reset"> <p> .</p> <content></content> </template> <div class="shadow-host"> <p>Host Content</p> </div> <script> var host = document.querySelector('.shadow-host'), template = document.querySelector('#reset'), shadow = host.createShadowRoot(); shadow.resetStyleInheritance = true; shadow.appendChild(template.content); </script>
рдкрд░рд┐рдгрд╛рдо:

рдЙрджрд╛рд╣рд░рдг рд▓рд┐рдВрдХрдХреЙрдкреАрд░рд╛рдЗрдЯ рд╢реИрд▓рд┐рдпреЛрдВ
рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╢реИрд▓рд┐рдпреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐
рдЫрд╛рдпрд╛ рд╡реГрдХреНрд╖ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ,
applyAuthorStyles
рдЧреБрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ <template id="no-author-st"> <div class="border">div.border</div> </template> <style> .border { border: 3px dashed red; } </style> <div class="shadow-host"></div> <script> var host = document.querySelector('.shadow-host'), template = document.querySelector('#no-author-st'), shadow = host.createShadowRoot(); shadow.applyAuthorStyles = false; </script>
applyAuthorStyles
рдХрд╛ рдорд╛рди рдмрджрд▓рдиреЗ рдкрд░, рд╣рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рддрд╛ рд╣реИ:
applyAuthorStyles = false

applyAuthorStyles = true

рдЙрджрд╛рд╣рд░рдг рд▓рд┐рдВрдХ, applyAuthorStyles = falseрдЙрджрд╛рд╣рд░рдг рд▓рд┐рдВрдХ, рд▓рд╛рдЧреВ рдХрд░реЗрдВрдЖрд░реНрдЯрдСрд░реНрдЯрд▓реНрд╕ = рд╕рдЪ^ рдФрд░ ^ ^ рдЪрдпрдирдХрд░реНрддрд╛
рдПрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдорд╣рд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо рдЕрднреА рднреА
рдЫрд╛рдпрд╛ рдХреЗ рдкреЗрдбрд╝ рдкрд░ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рд╢реИрд▓рд┐рдпреЛрдВ рд╕реЗ рдЗрд╕рдХреА рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЛ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдПрдХ рд╣рдереМрдбрд╝рд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдФрд░ рдПрдХ рд╕реНрд▓реЗрдЬрд╣реИрдорд░ред
div ^ p
рдЪрдпрдирдХрд░реНрддрд╛
div p
рдХреЗ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рдорд╛рди рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ
рдЫрд╛рдпрд╛ рд╕реАрдорд╛ рдХреЛ рдкрд╛рд░ рдХрд░рддрд╛ рд╣реИред
div ^^ p
рдЪрдпрдирдХрд░реНрддрд╛ рдкрд┐рдЫрд▓реЗ рдПрдХ рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдЫрд╛рдпрд╛ рд╕реАрдорд╛рдУрдВ рдХреА рдХрд┐рд╕реА рднреА рд░рд╛рд╢рд┐ рдХреЛ рдкреНрд░рддрд┐рдЪреНрдЫреЗрдж рдХрд░рддрд╛ рд╣реИред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ <template id="hat"> <p class="shadow-p"> . </p> </template> <style> .shadow-host ^ p.shadow-p { color: red; } </style> <div class="shadow-host"></div> <script> var host = document.querySelector('.shadow-host'), template = document.querySelector('#hat'), shadow = host.createShadowRoot(); shadow.appendChild(template.content); </script>
рдкрд░рд┐рдгрд╛рдо:

рдЙрджрд╛рд╣рд░рдг рд▓рд┐рдВрдХрдореБрдЭреЗ рд╢реИрдбреЛ рдбреЛрдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?
рд╢реИрдбреЛ рдбреЛрдо рдЖрдкрдХреЛ HTML рддрддреНрд╡реЛрдВ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдмрд╛рд╣рд░реА рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред
рд╕рдВрднрд╡ рдЙрдкрдпреЛрдЧ
iframe
рдХрд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рд╣реИред рдмрд╛рдж рд╡рд╛рд▓рд╛ рднреА рдЕрд▓рдЧ-рдерд▓рдЧ рд╣реИред рдПрдХ рдмрд╛рд╣рд░реА рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рдЧрд▓ рддрд░реАрдХреЛрдВ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╕реАрдПрд╕рдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдмрд╛рд╣рд░реА рджреГрд╢реНрдп рдХреЛ рдмрджрд▓рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред
iframe
рд╡рд┐рдкрд░реАрдд,
рд╢реИрдбреЛ рдбреЛрдо рдЖрдкрдХреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рдФрд░ рдпрджреНрдпрдкрд┐
рдЫрд╛рдпрд╛ рд╡реГрдХреНрд╖ рдХреБрдЫ рдЕрд▓рдЧ-рдерд▓рдЧ рд╣реИ, рдЕрдЧрд░ рд╡рд╛рдВрдЫрд┐рдд рд╣реИ, рддреЛ рд╣рдо рд╢реИрд▓рд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдЗрд╕реЗ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВред
рдХрд╕реНрдЯрдо рддрддреНрд╡
рдХрд╕реНрдЯрдо рддрддреНрд╡ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ HTML рддрддреНрд╡реЛрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рд╣реИред рд╡реЗрдм рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ рдХреЗ рдЗрд╕ рд╣рд┐рд╕реНрд╕реЗ рдХрд╛ рдПрдкреАрдЖрдИ рдкрд░рд┐рдкрдХреНрд╡ рджрд┐рдЦрддрд╛ рд╣реИ рдФрд░
рдирд┐рд░реНрджреЗрд╢реЛрдВ рд╕реЗ рдорд┐рд▓рддрд╛-рдЬреБрд▓рддрд╛ рд╣реИ
рдХреЛрдгреАрдп ред
рд╢реИрдбреЛ рдбреЛрдо рдФрд░
рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рд╕рдВрдпреЛрдЬрди рдореЗрдВ, рдХрд╕реНрдЯрдо рддрддреНрд╡
<audio>
,
<video>
рдпрд╛
<input type="date">
рдЬреИрд╕реЗ рдкреВрд░реНрдг-рд╡рд┐рдЬреЗрдЯ рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддреЗ рд╣реИрдВред
рд╕рдВрдШрд░реНрд╖ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдорд╛рдирдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдХрд╕реНрдЯрдо рддрддреНрд╡реЛрдВ рдХреЛ рдЙрдирдХреЗ рдирд╛рдо рдореЗрдВ рдПрдХ рд╣рд╛рдЗрдлрд╝рди рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд╡реЗ
HTMLElement
рд╡рд╛рд░рд┐рд╕ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЬрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░
<my-super-element>
рдЬреИрд╕реЗ рдорд╛рд░реНрдХрдЕрдк рдореЗрдВ рдЖрддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдЗрд╕реЗ
HTMLElement
рд░реВрдк рдореЗрдВ рдкрд╛рд░реНрд╕ рдХрд░рддрд╛ рд╣реИред
<mysuperelement>
рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкрд░рд┐рдгрд╛рдо
HTMLUnknownElement
рд╣реЛрдЧрд╛ред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ <dog></dog> <x-dog></x-dog> <dl> <dt>dog type</dt> <dd id="dog-type"></dd> <dt>x-dog type</dt> <dd id="x-dog-type"></dd> </dl> <script> var dog = document.querySelector('dog'), dogType = document.querySelector('#dog-type'), xDog = document.querySelector('x-dog'), xDogType = document.querySelector('#x-dog-type'); dogType.innerText = Object.prototype.toString.apply(dog); xDogType.innerText = Object.prototype.toString.apply(xDog); </script>
рдкрд░рд┐рдгрд╛рдо:

рдЙрджрд╛рд╣рд░рдг рд▓рд┐рдВрдХрдХрд╕реНрдЯрдо рддрддреНрд╡ рдПрдкреАрдЖрдИ
рд╣рдо рдЕрдкрдиреЗ рддрддреНрд╡ рдХреЗ рдЧреБрдгреЛрдВ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЬреИрд╕реЗ рдХрд┐
<audio>
рддрддреНрд╡ рдХрд╛
play()
рд╡рд┐рдзрд┐ред
рддрддреНрд╡ рдХреЗ рдЬреАрд╡рди рдЪрдХреНрд░ рдореЗрдВ 4 рдШрдЯрдирд╛рдПрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рд╣рдо рдПрдХ рдХреЙрд▓рдмреИрдХ рд▓рдЯрдХрд╛ рд╕рдХрддреЗ рд╣реИрдВ:
- рдмрдирд╛рдпрд╛ - рддрддреНрд╡ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдпрд╛
- рд╕рдВрд▓рдЧреНрди - рддрддреНрд╡ DOM рдореЗрдВ рдбрд╛рд▓рд╛ рдЧрдпрд╛ рд╣реИ
- рдЕрд▓рдЧ - рдбреЛрдо рд╕реЗ рд╣рдЯрд╛рдП рдЧрдП рдЖрдЗрдЯрдо
- рд╡рд┐рд╢реЗрд╖рддрд╛-рддрддреНрд╡ - рддрддреНрд╡ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЛ рдЬреЛрдбрд╝рд╛, рд╣рдЯрд╛рдпрд╛ рдпрд╛ рдмрджрд▓рд╛ рдЧрдпрд╛
рдПрдХ рдХрд╕реНрдЯрдо рддрддреНрд╡ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
- рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рддрддреНрд╡ рдмрдирд╛рдПрдВред
рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХреЛ рдПрдХ HTMLElement
рдпрд╛ рдЙрд╕рдХреЗ рд╡рдВрд╢рдЬ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛,
рдЬреИрд╕реЗ HTMLButtonElement
:
var myElementProto = Object.create(HTMLElement.prototype, {
- DOM.registerElement
document.registerElement()
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ DOM рдореЗрдВ рдПрдХ рддрддреНрд╡ рдкрдВрдЬреАрдХреГрдд рдХрд░реЗрдВ:
var myElement = document.registerElement('my-element', { prototype: myElementProto });
рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ <x-cat></x-cat> <div> <strong>Cat's life:</strong> <pre id="cats-life"></pre> </div> <script> var life = document.querySelector('#cats-life'), xCatProto = Object.create(HTMLElement.prototype, { nickName: 'Cake', writable: true }); xCatProto.meow = function () { life.innerText += this.nickName + ': meow\n'; }; xCatProto.createdCallback = function () { life.innerText += 'created\n'; }; xCatProto.attachedCallback = function () { life.innerText += 'attached\n'; }; xCatProto.detachedCallback = function () { life.innerText += 'detached\n'; }; xCatProto.attributeChangedCallback = function (name, oldVal, newVal) { life.innerText += ( 'Attribute ' + name + ' changed from ' + oldVal + ' to ' + newVal + '\n'); }; document.registerElement('x-cat', { prototype: xCatProto }); document.querySelector('x-cat').setAttribute('friend', 'Fiona'); document.querySelector('x-cat').meow(); document.querySelector('x-cat').nickName = 'Caaaaake'; document.querySelector('x-cat').meow(); document.querySelector('x-cat').remove(); </script>
рдкрд░рд┐рдгрд╛рдо:

рдЙрджрд╛рд╣рд░рдг рд▓рд┐рдВрдХрд╣рдореЗрдВ рдХрд╕реНрдЯрдо рддрддреНрд╡реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?
рдХрд╕реНрдЯрдо рддрддреНрд╡ рд╕рд┐рдореЗрдВрдЯрд┐рдХ рдорд╛рд░реНрдХрдЕрдк рдХреА рдУрд░ рдПрдХ рдХрджрдо рд╣реИред рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдЕрдореВрд░реНрдд рдмрдирд╛рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рд╢рдмреНрджрд╛рд░реНрде рд░реВрдк рд╕реЗ рддрдЯрд╕реНрде
<div>
рдпрд╛
<ul>
рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдЯрд╛рдЗрдкрд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓
<ul>
, рдЬрдмрдХрд┐
рдХрд╕реНрдЯрдо рддрддреНрд╡ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдкрд░ рдореЙрдбреНрдпреВрд▓рд░, рдкрдардиреАрдп рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВрдЧреЗред
рд╢реИрдбреЛ рдбреАрдУрдПрдо рдФрд░
рдХрд╕реНрдЯрдо рддрддреНрд╡ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдПрдкреАрдЖрдИ рдФрд░ рдПрдирдХреИрдкреНрд╕реБрд▓реЗрдЯреЗрдб рдЖрдВрддрд░рд┐рдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗ рд╕рд╛рде рд╕рдВрджрд░реНрдн-рд╕реНрд╡рддрдВрддреНрд░ рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╡ рдмрдирд╛рддреЗ рд╣реИрдВред
HTML рдЖрдпрд╛рдд
рдЖрдпрд╛рдд рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдПрдкреАрдЖрдИ рд╣реИ рдЬреЛ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдПрдХ рдЬрдЧрд╣ рд╣реИред рд╡реЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдЕрдиреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рд╕реЗ рдорд╛рд░реНрдХрдЕрдк рдЯреБрдХрдбрд╝реЗ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддреЗ рд╣реИрдВред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ <link rel="import" href="widget.html"> <sctipt> var link = document.querySelector('link[rel="import"]'); // // *import*. var importedContent = link.import; importedContent.querySelector('article'); </sctipt>
Object.observe ()
рдПрдХ рдФрд░ рдЕрдЪреНрдЫрд╛ рдЬреЛрдбрд╝ рдФрд░ рд╡реЗрдм рдШрдЯрдХ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ (рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ)
Object.observe()
рдкрд░рд┐рд╡рд░реНрддрди рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рд╣реИред
рдпрджрд┐ рдЖрдк
рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд╡реЗрдм рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕реБрд╡рд┐рдзрд╛рдПрдБ рдзреНрд╡рдЬ рд╕рдХреНрд╖рдо рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рд╡рд┐рдзрд┐ Chrome рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ var o = {}; Object.observe(o, function (changes) { changes.forEach(function (change) {
рдЬрдм
o
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдХреЙрд▓рдмреИрдХ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рдгреА рджреА рдЬрд╛рддреА рд╣реИ
рдЧреБрдг рдЬреЛ рдмрджрд▓ рдЧрдП рд╣реИрдВред
рдЯреЛрдбреЛ рд╡рд┐рдЬреЗрдЯ
рдЗрд╕ рдЬреНрдЮрд╛рди рд╕реЗ рд▓реИрд╕ рдПрдХ рдкреНрд░рд╛рдЪреАрди рдкрд░рдВрдкрд░рд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдореИрдВрдиреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг TODO рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдпрд╣ рд╡реЗрдм рдШрдЯрдХреЛрдВ рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВрдиреЗ рдПрдХ рд▓реЗрдЦ рдореЗрдВ рдмрд╛рдд рдХреА рдереАред
рдПрдХ рдкреГрд╖реНрда рдкрд░ рдПрдХ рд╡рд┐рдЬреЗрдЯ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдПрдХ рдЖрдпрд╛рдд рдФрд░ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рдПрдХ рдЯреИрдЧ рдХреЗ рд▓рд┐рдП рдиреАрдЪреЗ рдЖрддрд╛ рд╣реИред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ <html> <head> <link rel="import" href="todo.html"> </head> <body> <x-todo></x-todo> </body> </html> <script> </script>
рдкрд░рд┐рдгрд╛рдо:

рдбреЗрдореЛ рд▓рд┐рдВрдХрдирд┐рд╖реНрдХрд░реНрд╖
HTML5 рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд╕рд╛рде, рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдиреЗ
рдореВрд▓ рд░реВрдк рд╕реЗ рдирдП рдореАрдбрд┐рдпрд╛ рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рд╣реИред
<canvas>
рдЬреИрд╕реЗ рддрддреНрд╡ рднреА рджрд┐рдЦрд╛рдИ рджрд┐рдПред рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдмрдбрд╝реА рд╕рдВрднрд╛рд╡рдирд╛рдПрдВ рд╣реИрдВред рдЗрд╕ рдорд╛рдирдХ рдиреЗ рднреА рддрддреНрд╡
<article>
,
<header>
, рдФрд░ рдЕрдиреНрдп рдХреЛ рдкреЗрд╢ рдХрд┐рдпрд╛ред рдорд╛рд░реНрдХрдЕрдк "рдЕрд░реНрде рдмрдирд╛рдиреЗ" рдХреЗ рд▓рд┐рдП рд╢реБрд░реВ рд╣реБрдЖ, рд╢рдмреНрджрд╛рд░реНрде рдХрд╛ рдЕрдзрд┐рдЧреНрд░рд╣рдг рдХрд┐рдпрд╛ред
рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рд╡реЗрдм рдШрдЯрдХ рдЕрдЧрд▓рд╛ рдЪрд░рдг рд╣реИред рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЗрдВрдЯрд░реЗрдХреНрдЯрд┐рд╡ рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред рд╡реЗ рдмрдирд╛рдП рд░рдЦрдиреЗ, рдкреБрди: рдЙрдкрдпреЛрдЧ, рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рд╣реИрдВред
рдкреГрд╖реНрда рдХреЛрдб "рдмреНрд▓реЙрдХ", "рдкреИрд░рд╛рдЧреНрд░рд╛рдл" рдФрд░ "рд╕реВрдЪрд┐рдпреЛрдВ" рдХреЗ рдПрдХ рд╕реЗрдЯ рдХреА рддрд░рд╣ рдирд╣реАрдВ рджрд┐рдЦреЗрдЧрд╛ред рд╣рдо "рдореЗрдиреВ", "рд╕рдорд╛рдЪрд╛рд░ рдлрд╝реАрдб", "рдЪреИрдЯ" рдЬреИрд╕реЗ рддрддреНрд╡реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдмреЗрд╢рдХ, рдорд╛рдирдХ рдирдо рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдпрд╛рдд рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЯреЗрдореНрдкрд▓реЗрдЯ рднреА рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред рдЙрдирдХреЗ рдЙрдкрдпреЛрдЧ рдиреЗ рд╕рдордп-рд╕рдордп рдкрд░ рдХреНрд░реЛрдо рдХреЛ рдмрд░реНрдмрд╛рдж рдХрд░ рджрд┐рдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдирд╡рд╛рдЪрд╛рд░реЛрдВ рдХреА рдорд╛рддреНрд░рд╛ рдЕрджреНрднреБрдд рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЗрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╡реЗрдм рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛ рд╕рдХрддреА рд╣реИрдВред рдФрд░ рдХреБрдЫ рдореМрдЬреВрджрд╛ рдЪреМрдЦрдЯреЗ рдХреЗ рдХрд╛рдо рдореЗрдВ рдХрд╛рдлреА рддреЗрдЬреА рд▓рд╛рдПрдВрдЧреЗред
рд╡реЗрдм рдХрдВрдкреЛрдиреЗрдВрдЯреНрд╕ рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЛ рдЕрдм рдкреЙрд▓реАрдлрд┐рд▓реНрд╕ рдХреЗ рд╕рд╛рде рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдкреЙрд▓рд┐рдорд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдПрдХ рдкреВрд░реНрдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ-рд╕реНрддрд░реАрдп рдврд╛рдВрдЪрд╛ рд╣реИ рдЬреЛ
рд╡реЗрдм рдШрдЯрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
╞Т
рд╕рдВрджрд░реНрдн
рдПрд░рд┐рдХ рдмрд┐рдбреЗрд▓рдореИрди ,
рд╡реЗрдм рдШрдЯрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд▓реЗрдЦ рдФрд░ рд╡реАрдбрд┐рдпреЛ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛: