рдХреНрд░реЛрдо рдПрдХреНрд╕рдЯреЗрдВрд╢рди - рд╢рддрд░рдВрдЬ рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░рд┐рдпрди рдХреЗ рд╕рд╛рде

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

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

рдЙрдкрд▓рдмреНрдз рдЙрдкрдХрд░рдг:
рд╕рд╛рдордЧреНрд░реА рд▓рд┐рдкрд┐рдпреЛрдВ , рдкреГрд╖реНрдарднреВрдорд┐ рдкреГрд╖реНрда , рд╕рдВрджреЗрд╢ рдкрд╛рд╕рд┐рдВрдЧ

рд╕рдорд╛рдзрд╛рди рдПрд▓реНрдЧреЛрд░рд┐рдердо:
рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдпрдВрддреНрд░рдг рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдПрдВ рдЬреЛ рд╡рдВрд╢рдЬ рдореЙрдбреНрдпреВрд▓ рдмрдирд╛рдПрдВрдЧреЗ рдФрд░ рдЙрдирдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░реЗрдВрдЧреЗ, рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд╕рд╛рде рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рддрдВрддреНрд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗред



рд╕рд╛рд░ рдЙрджрд╛рд╣рд░рдг:
рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдпрдВрддреНрд░рдг рдореЙрдбреНрдпреВрд▓ (OUM), рдиреЗ 3 рд╡рдВрд╢рдЬ (P1, P2, P3) рдмрдирд╛рдП, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдПрдХ рдЕрд▓рдЧ рдЯреИрдм рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ P1 рдХреЗ рд╕рд╛рде рдПрдХ рдХреНрд░рд┐рдпрд╛ рдХреА, P1 рдиреЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ OUM рдХреЛ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрд╛, OUM рдиреЗ рдЖрд╡рд╢реНрдпрдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдФрд░ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ P2, P3 рдХреЛ рд╕реВрдЪрд┐рдд рдХрд┐рдпрд╛ред

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

рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди:
рд╣рдо рдПрдХ рдкреГрд╖реНрдарднреВрдорд┐ рдкреГрд╖реНрда рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рдмрд╛рд░ рдФрд░ рд╕рднреА рдХреЗ рд▓рд┐рдП рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рдЬреАрд╡рдирдХрд╛рд▓ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд╣рдо рдЗрд╕рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рдирд┐рдпрдВрддреНрд░рдг рдореЙрдбреНрдпреВрд▓ (рдУрдпреВрдПрдо) рд░рдЦреЗрдВрдЧреЗред

рдЬрдм рдХреЛрдИ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рд╕реА рдкреГрд╖реНрда рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрд╕ рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ рд╡рд╣ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдореБрдЦреНрдп рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рд╢реБрднрд╛рд░рдВрдн рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдЪрдпрдирд┐рдд рдЯреИрдм рдХреА рд╕рд╛рдордЧреНрд░реА рдореЗрдВ рдПрдХ рдЫреЛрдЯреЗ рдХрдорд╛рдВрдб рдореЙрдбреНрдпреВрд▓ (KM) рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ (HTML рдлреНрд░рдВрдЯрдПрдВрдб рдФрд░ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмреИрдХрдПрдВрдб), рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЖрд╡рд╢реНрдпрдХ рдХреНрд░рд┐рдпрд╛ рднреА рдХрд░рддрд╛ рд╣реИ рдЗрд╕ рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рдеред
main.js
chrome.tabs.executeScript(null, {file: "content_script.js"}); //    //       


рдЬреИрд╕реЗ рд╣реА рдореЙрдбреНрдпреВрд▓ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдУрдпреВрдПрдо рдХреЛ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИред
content_script.js
 chrome.extension.sendMessage({cmd: "tab_add"}, function(response) {}); //    chrome.extension.onMessage.addListener(ext_msg_listener); //      function ext_msg_listener () { var cmd = arguments[0].cmd; ... } 


OUMA рд╕рдВрджреЗрд╢ рд╕реЗ рдЯреИрдм рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЗ рд▓рд┐рдП рдЯреИрдм рдХреА рд╕реВрдЪреА рдореЗрдВ рд░рдЦрддрд╛ рд╣реИред
background.js
 chrome.extension.onMessage.addListener( function(request, sender, send_response) { if (request.cmd == "tab_add") { //        = sender.tab.id } ... } ) 


рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реАрдПрдо рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╕реАрдПрдо рдУрдпреВрдПрдо рдХреЛ рдПрдХ рд╕рдВрджреЗрд╢ рднреЗрдЬрддрд╛ рд╣реИред
content_script.js
 chrome.extension.sendMessage({cmd: "some_msg_from_km"}, function(response) {}) 


OUM, рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ, рд╕реВрдЪреА рд╕реЗ CMs рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред
background.js
 chrome.extension.onMessage.addListener( function(request, sender, send_response) { ... if (request.cmd == "some_msg_from_km") { //  tab_id     chrome.tabs.sendMessage(tab_id, {cmd: 'some_command_from_oum', bar: 'buz'}, null) } ... } ) 


KM рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╕реБрдирддрд╛ рд╣реИ рдФрд░ OUMA рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдЖрджреЗрд╢ рд╕реБрдирдиреЗ рдХреЗ рдмрд╛рдж рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рддрд╛ рд╣реИред
content_script.js
 function ext_msg_listener () { ... if (cmd=="some_command_from_oum") { //    } } 


рдЬрдм рд╕реАрдПрдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдмрдВрдж рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдпрд╣ рдУрдпреВрдПрдордП рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИред
content_script.js
 chrome.extension.onMessage.removeListener(ext_msg_listener); chrome.extension.sendMessage({cmd: "tab_remove"}, function(response) {}); //      


рддрджрдиреБрд╕рд╛рд░, рдЯреИрдм рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рд╕реВрдЪреА рд╕реЗ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
background.js
 chrome.extension.onMessage.addListener( function(request, sender, send_response) { ... if (request.cmd == "tab_remove") { //       = sender.tab.id } } ) 


рдореЗрд░реЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛:
рдореИрдВ html + js рдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯрд┐рд╡-рд╕реА рдореЗрдВ рдлреНрд░рдВрдЯрдПрдВрдб рд▓рд┐рдЦ рд░рд╣рд╛ рд╣реВрдВ, php рдпрд╛ рд╣реИрдХ (рд╕рд┐рдирдЯреНрд░рд╛) рдореЗрдВ рдмреИрдХреЗрдВрдб рдХрд░рддрд╛ рд╣реВрдВред рдореБрдЭреЗ iOS рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░реЗрдХреНрдЯрд┐рд╡ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрдирд╛рдирд╛ рдкрд╕рдВрдж рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЧреЗрдореНрд╕ред рдПрдХ рд╕рдордп рдореЗрдВ рдУрдкрдирдЬреАрдПрд▓ рдИрдПрд╕ 2.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЖрд╡реЗрджрди рд▓рд┐рдЦрдирд╛ рдЖрд╡рд╢реНрдпрдХ рдерд╛, рд▓реЗрдХрд┐рди рддрдм рд╕рднреА рдЪреМрдЦрдЯреЗ 1.1 рдкрд░ рдереЗ, рдореБрдЭреЗ рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рд▓рд┐рдЦрдирд╛ рдерд╛, рдпрд╣ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╕рдмрдХ рдерд╛, рдЕрдЧрд░ рдУрдкрдирдЬреАрдПрд▓ рдИрдПрд╕ 2.0 рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рд╢реНрди рд╣реИрдВ - рдкреВрдЫреЗрдВ, рдореИрдВ рдЬрд╡рд╛рдм рджреВрдВрдЧрд╛ред

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

рд╣рд░ рдмрд╛рд░ рд╕рдВрджреЗрд╢ рднреЗрдЬрдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рд╕реАрдПрдо рдФрд░ рдУрдпреВрдПрдордП рдХреЗ рдмреАрдЪ рдПрдХ рд╕реНрдерд╛рдпреА рд╕рдВрдмрдВрдз рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдПред

рдЕрдЧрд░ рдХрд┐рд╕реА рдЪреАрдЬ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╡реНрдпрд╛рдкрдХ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ - рдкреНрд░рд╢реНрди рдкреВрдЫреЗрдВ, рдореИрдВ рдЬреЛрдбрд╝реВрдВрдЧрд╛ред

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


All Articles