рдбреЛрдо рднрдВрдбрд╛рд░рдг рдЦрд┐рдбрд╝рдХреА рдкреНрд░рд╕рд╛рд░рдг

рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк DOM рд╕реНрдЯреЛрд░реЗрдЬ рдЗрд╡реЗрдВрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рдПрдХ рд╣реА рдбреЛрдореЗрди рдХреА рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рдкреНрд░рд╕рд╛рд░рдг рд╕рдВрдЪрд╛рд░ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред

рдЫрд╡рд┐

DOM Storage (localStorage sessionStorage), рдЧреНрд░рд╛рд╣рдХ рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреА рдЕрджреНрднреБрдд рдХреНрд╖рдорддрд╛ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдФрд░ рдкреНрд░рд▓реЗрдЦрд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдмрд╣реБрдд рдХрдо рдЬреНрдЮрд╛рдд рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ - рд╡рд░реНрддрдорд╛рди рдбреЛрдореЗрди рд╕реЗ рдЦреБрд▓реА рд╕рднреА рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП DOM рд╕рдВрдЧреНрд░рд╣рдг рддрддреНрд╡ рдХреЛ рдмрджрд▓рдиреЗ / рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЕрдзрд┐рд╕реВрдЪрдирд╛ред

рдорд╛рдирдХ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рд╕реНрдЯреЛрд░ рдШрдЯрдирд╛ рдХреЛ рд╡рд░реНрддрдорд╛рди рд╡рд┐рдВрдбреЛ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдкрд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрдм рд╕реНрдЯреЛрд░ рдореЗрдВ рдбреЗрдЯрд╛ рдореЗрдВ рдмрджрд▓рд╛рд╡ рд╣реЛрддрд╛ рдерд╛ред рдПрдХ рдШрдЯрдирд╛ рдХреЛ рд╢рд░реАрд░ рдкрд░ рдкрдХрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрд░ рдФрд░ рдлрд┐рд░ рдЦрд┐рдбрд╝рдХреА рдкрд░ рдкреЙрдк рдЕрдк рд╣реЛрддрд╛ рд╣реИред
рднрдВрдбрд╛рд░рдг рдШрдЯрдирд╛ рд╣рдореЗрдВ рдЙрди рдЦрд┐рдбрд╝рдХрд┐рдпреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рджреЗрддреА рд╣реИ рдЬреЛ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред

рднрдВрдбрд╛рд░рдг рдШрдЯрдирд╛ FF 3.5+ рд╕реЗрд╢рди рдкрд░ рдЙрдкрд▓рдмреНрдз рд╣реИред 10.6+ рд╕рд╛ 4+ Ch 8+ IE 8+ (рдореИрдВ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)

рдЯреЗрд╕реНрдЯ рдХреЗрд╕ рдмрдирд╛рдПрдВред рдЗрд╕рдХрд╛ рд╕рд╛рд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ: рдПрдХ рдореВрд▓ рд╡рд┐рдВрдбреЛ рд╣реИ (рдЬреЛ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдкрдХрдбрд╝рддреА рдирд╣реАрдВ рд╣реИ), рдпрд╣ рдПрди рдЪрд╛рдЗрд▓реНрдб рд╡рд┐рдВрдбреЛ рдмрдирд╛рддрд╛ рд╣реИ рдЬреЛ рдХреБрдЫ рдбреЗрдЯрд╛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдмрд╛рдХреА рд╡рд┐рдВрдбреЛ рдХреЛ рдХрдорд╛рдВрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕рднреА рд╡рд┐рдВрдбреЛ рдХреЗ рд▓рд┐рдП рдИрд╡реЗрдВрдЯ рд╣реИрдВрдбрд▓рд░ рдмрдирд╛рдПрдВ
if ('v'=='\v') { // Note: IE listens on document document.attachEvent('onstorage', onStorage, false); } else if (window.opera || webkit){ // Note: Opera and WebKits listens on window window.addEventListener('storage', onStorage, false); } else { // Note: FF listens on document.body or document document.body.addEventListener('storage', onStorage, false); } 

рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ, рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕ рдХрд╛рд░рдг рд╕реЗ, IE рдХреЗрд╡рд▓ рдИрд╡реЗрдВрдЯ рдХреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝, рдУрдкреЗрд░рд╛ рдФрд░ рд╡рд┐рдВрдбреЛ рдкрд░ рд╡рд┐рдВрдбреЛ, рдФрд░ FF рдкрд░ рдпрд╛ рддреЛ document.body рдпрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкрд░ рдкрдХрдбрд╝рддрд╛ рд╣реИ (рд╢рд╛рдпрдж рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рджреМрд░рд╛рди рдЦрд░рд╛рдм рдкрдврд╝рд╛ рдЧрдпрд╛ рдерд╛)ред
рдСрдирд╕реНрдЯреЛрд░реЗрдЬ рд╣реИрдВрдбрд▓рд░ рдпрд╛ рддреЛ рд╡рд┐рдВрдбреЛ рдмрдВрдж рдХрд░ рджреЗрдЧрд╛ рдпрд╛ рдХреБрдЫ рдбреЗрдЯрд╛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ред

рдкреНрд░рд╕рд╛рд░рдг рд╕рдорд╛рд░реЛрд╣
 function broadcast(cmd){ localStorage.setItem('command', cmd); if (window.opera || webkit) { // Note: Opera and WebKits don't fire storage event on event source window // Do it manually onStorage(); } } 

рдУрдкреЗрд░рд╛ рдФрд░ рд╡реЗрдмрдХрд┐рдЯ рдорд╛рдирдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рдд рд╡рд░реНрддрдорд╛рди рд╡рд┐рдВрдбреЛ рдкрд░ рднрдВрдбрд╛рд░рдг рдХреЛ рдХреЙрд▓ рди рдХрд░реЗрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдСрдирд╕реНрдЯреЗрдЬ рдХреЙрд▓ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдХрд░рддреЗ рд╣реИрдВ (рдЕрдиреНрдп рдбреЗрд╡рд▓рдкрд░реНрд╕ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд▓реЗрдЦрди рдХреЛ рдЦрд░рд╛рдм рддрд░реАрдХреЗ рд╕реЗ рдкрдврд╝рддреЗ рд╣реИрдВ)ред

рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реИред
рд╕реНрд░реЛрдд gist.github.com/840221
Bit.ly/dVatda рдЙрджрд╛рд╣рд░рдг

рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ
1. рдЙрджрд╛рд╣рд░рдг рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ 1-25 рд╡рд┐рдВрдбреЛ рдЦреЛрд▓рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХрд╛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ (рдУрдкреЗрд░рд╛, IE) рджреВрд╕рд░реА рд╡рд┐рдВрдбреЛ рдХреЛ рдмреНрд▓реЙрдХ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдУрдкреЗрд░рд╛ рдореЗрдВ, рдкреНрд░рдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╕рднреА рдкреЙрдк-рдЕрдк рд╡рд┐рдВрдбреЛрдЬрд╝ "F12 - рд╕реЗрдЯрд┐рдВрдЧреНрд╕ - рдмреЗрд╕рд┐рдХ - рдкреЙрдк-рдЕрдк" рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВред
2. рд╕рднреА рд╡рд┐рдВрдбреЛ рдЕрдкрдиреЗ рдЖрдк рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдВрдЧреАред
3. IE 8 рдореЗрдВ, рдкреНрд░рд╕рд╛рд░рдг рдХреБрдЫ рд╡рд┐рдВрдбреЛ рддрдХ рдирд╣реАрдВ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИ (рдПрдХ рдмрдЧ рдЬреНрдЮрд╛рдд рд╣реИ), рдЗрд╕рд▓рд┐рдП рд╕рднреА рд╡рд┐рдВрдбреЛ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдореИрдЬрд┐рдХ рдмрдЯрди рджрдмрд╛рдирд╛ рд╣реЛрдЧрд╛ред

рдбреЛрдо рд╕реНрдЯреЛрд░реЗрдЬ рд╡рд┐рдВрдбреЛ рдкреНрд░рд╕рд╛рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╣рд╛рдВ рдХрд░реЗрдВ
рдореИрдВ рдЖрд╡реЗрджрди рдХреЗ рд╡рд┐рд╢реЗрд╖ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рдерд╛ред рдЬреЛ рдХреБрдЫ рд╣реБрдЖ рд╣реИ: рдбрд╛рдпрдиреЗрдорд┐рдХ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╡рд┐рдВрдбреЛрдЬрд╝ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдирд╛, рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдбреЛрдореЗрди рд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдВрдбреЛ рдЦреЛрд▓рдиреЗ рд╕реЗ рд░реЛрдХрдирд╛ (рдЬреИрд╕рд╛ рдХрд┐ рдкреНрд░рдпреЛрдЧ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдУрдкреЗрд░рд╛ рдореЗрдВ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдпрд╣ рджреВрд╕рд░реЛрдВ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ)ред

Source: https://habr.com/ru/post/In114350/


All Articles