Google рдХреНрд░реЛрдо рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛

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

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВрдиреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП Google рдХреНрд░реЛрдо рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХреИрд╕реЗ рд▓рд┐рдЦрд╛ред рдФрд░ рд▓реЗрдЦ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдПрдХ рдпреБрд╡рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреА рдорджрдж рдХрд░рдирд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЕрдВрдЧреНрд░реЗрдЬреА рд╕рдордЭрдиреЗ рдореЗрдВ рдХрдард┐рдирд╛рдИ рд╣реЛрддреА рд╣реИред рддреАрд╕рд░реЗ рд╡рд░реНрд╖ рдореЗрдВ рд╣рд░ рдХреЛрдИ Google рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдирд╣реАрдВ рдкрдврд╝ рдкрд╛рдПрдЧрд╛, рдЬреЛ рдХреЗрд╡рд▓ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рд╣реИред рдФрд░ рдореИрдВ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред

рдпрджрд┐ рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рд░реВрд╕реА рдореЗрдВ рдХреНрд░реЛрдо рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╡рд┐рдХрд╛рд╕ рдкрд░ рдХреБрдЫ рднреА рд╕рдордЭрджрд╛рд░ рдирд╣реАрдВ рд╣реИ, рдХреЗрд╡рд▓ рдпрд╣ рд▓реЗрдЦ рдЙрдкрд▓рдмреНрдз рд╣реИ рдЬреЛ рдмрд╣реБрдд рдореВрд▓ рдмрд╛рддреЗрдВ рдмрддрд╛рддрд╛ рд╣реИред

рдпрд╣ рдкреЛрд╕реНрдЯ рдПрдХ рдЕрдзрд┐рдХ рдЙрдиреНрдирдд рд╕рдВрд╕реНрдХрд░рдг рд╣реЛрдЧрд╛ред

рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

рдореИрдВ рдмрд╣реБрдд рдореВрд▓ рдмрд╛рддреЛрдВ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рдФрд░ рдЗрд╕рд▓рд┐рдП рдореИрдВ рдкрд╣рд▓реЗ рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдкрдврд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред

рдореЗрд░рд╛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдХреЛрдб рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рджреЗрдЦреЗрдВред

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

рд╣рдо рд╕реАрдзреЗ рдЕрдкрдиреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝рддреЗ рд╣реИрдВред
рдпрд╣ рдПрдХ рд╕рд░рд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬреЛ рдЙрди рдлреНрд░реАрд▓рд╛рдВрд╕ рдкреЗрдЬ рд╕реЗ рд╣рдЯрд╛рддреА рд╣реИ рдЬреЛ рдЙрди рд╡рд┐рдЬреНрдЮрд╛рдкрдиреЛрдВ рдХреА рдЦреЛрдЬ рдореЗрдВ рдмрд╛рдзрд╛ рдбрд╛рд▓рддреЗ рд╣реИрдВ рдЬреЛ рдореБрдЭреЗ рдмреНрдпрд╛рдЬ рджреЗрддреЗ рд╣реИрдВ (рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдХреЗрд╡рд▓ рджреАрд░реНрдШрдХрд╛рд▓рд┐рдХ рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реВрдВ)ред рдореМрдЬреВрджрд╛ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдлрд╝рд┐рд▓реНрдЯрд░ рдореЗрдВ рдЬреЛрдбрд╝ред

manifest.json

{
"name" : "Ffilter" ,
"version" : "1.0" ,
"background_page" : "bg.html" , // background .
"icons" : {
"48" : "icon_48.png" ,
"128" : "icon_128.png"
},
"page_action" :{ //
"default_title" : "Ffilter" ,
"default_icon" : "icon_19.png" ,
"default_popup" : "popup.html" //
},
"permissions" : [ //
"tabs" , "http://www.free-lance.ru/*"
],
"content_scripts" :[{ // DOM .
"matches" : [ "http://www.free-lance.ru/*" ],
"js" : [ "jq.js" , "script.js" ]
}]
}


* This source code was highlighted with Source Code Highlighter .

рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
рдирд╛рдо, рд╕рдВрд╕реНрдХрд░рдг - рдпрд╣ рд╕рднреА рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рд╣реИред

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

рдкрддрд╛ рдмрд╛рд░ рдХреЗ рдкрд╛рд╕, рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдмрд╛рд░ рдХреА рд╕реВрдЪреА рдореЗрдВ, рдкрддрд╛ рдмрд╛рд░ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдЖрдХрд╛рд░реЛрдВ рдореЗрдВ рдЖрдЗрдХрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

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

default_title , default_icon - рдирд╛рдо, рдЖрдЗрдХрди, рдХреНрд░рдорд╢рдГред
default_popup - html рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдкреЗрдЬ рдХрд╛ рдирд╛рдо рдЬреЛ рдЖрдЗрдХрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░ рдкреЙрдк рдЕрдк рд╣реЛрдЧрд╛ред рдкрд┐рдЫрд▓реЗ рд╡рд┐рд╖рдп рдХреЛ рджреЗрдЦреЗрдВ, рдпрджрд┐ рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реИред

рдЕрдиреБрдорддрд┐рдпрд╛рдБ - рдЕрдиреБрдорддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреАред рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдЯреИрдм рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдФрд░ рдлреНрд░реАрд▓рд╛рдВрд╕ рдПрдбреНрд░реЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ (рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ ajax рдЕрдиреБрд░реЛрдз рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдкреЗрдЬ рдХреЗ рд╕рд╛рде js рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)ред

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

рд╣рдо рдФрд░ рдЖрдЧреЗ рдмрдврд╝реЗрдВред
рдпрджрд┐ рдЖрдкрдиреЗ рд╕рдм рдХреБрдЫ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХрд▓реНрдкрдирд╛ рдХреА рд╣реИ, рддреЛ рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рд╡рд┐рд╕реНрддрд╛рд░ рдореЗрдВ 3 рдореБрдЦреНрдп рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИрдВ: рдПрдХ рдкреГрд╖реНрдарднреВрдорд┐ рдкреГрд╖реНрда (рд╕рднреА рдХреЗ рд▓рд┐рдП рдПрдХ), рдПрдХ рдлрд╝рд┐рд▓реНрдЯрд░ рд╡рд┐рдВрдбреЛ (рдкреНрд░рддреНрдпреЗрдХ рдкреГрд╖реНрда рдХреЗ рд▓рд┐рдП), рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдкреГрд╖реНрда рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯред

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


bg.html

chrome.tabs.onUpdated.addListener( function (id,info,tab) {
if (info.url)
if (/free-lance.ru/.test(info.url))
chrome.pageAction.show(id);
});


* This source code was highlighted with Source Code Highlighter .

рдХреЗрд╡рд▓ js рдХреЛрдб рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ (рдХреЗрд╡рд▓ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ)ред
chrome.tabs рд╕рд┐рд╕реНрдЯрдо рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдкрдХреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдХрд╛рдо рдХрд░рдирд╛ рд╣реИ, рдЖрдкрдиреЗ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛, рдпрд╣ рдЯреИрдм рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред

рд╣рдо рдЕрдкрдиреЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдСрдирдкреЗрдбрдб рдЗрд╡реЗрдВрдЯ (рдЯреИрдм рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реБрдП, рд▓рд┐рдВрдХ рдХреЗ рдмрд╛рдж) рдкрд░ рд▓рдЯрдХрд╛рддреЗ рд╣реИрдВ ред рдЬреИрд╕реЗ рд╣реА рдЯреИрдм рдХреА рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдкреИрд░рд╛рдореАрдЯрд░ рдЖрддреЗ рд╣реИрдВ, рдЕрдкрдбреЗрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА, рдЯреИрдм рдХреА рд╡рд╕реНрддреБред рд╣рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдЪрд╛рд╣рд┐рдП - рдЗрд╕рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдкреГрд╖реНрда рдХрд╛ рдкрддрд╛ рд╣реИред рд╣рдо рдЬрд╛рдВрдЪрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдлреНрд░реАрд▓рд╛рдиреНрд╕ рд╣реИ рдФрд░ рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдЗрд╕ рдЯреИрдм рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реБрдП chrome.pageAction рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рд╢реЛ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВред

chrome.pageAction - рдкрддрд╛ рдмрд╛рд░ рдХреЗ рдЕрдВрджрд░ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдСрдмреНрдЬреЗрдХреНрдЯ, рдФрд░ рд╣рдо рдЖрдкрдХреЛ рдЙрд╕ рдЯреИрдм рдореЗрдВ рдЖрдЗрдХрди рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреА рд╣рдореЗрдВ рдЬрд╝рд░реВрд░рдд рд╣реИ (рдЬрд╣рд╛рдВ рдлреНрд░реАрд▓рд╛рдВрд╕ рдЕрднреА-рдЕрднреА рдЦреЛрд▓рд╛ рдЧрдпрд╛ рд╣реИ)ред

рдкреГрд╖реНрдарднреВрдорд┐ рдкреГрд╖реНрда рдХреА рд╕рднреА рдХреНрд░рд┐рдпрд╛рдПрдВ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдИ рд╣реИрдВ, рд╕рд╛рдЗрдЯ рдЦреБрд▓ рдЧрдИ рд╣реИ, рдПрдХ рдЖрдЗрдХрди рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рд╣реИ, рдЕрдм рдЖрдк рдЙрд╕ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреЙрдкрдЕрдк.html рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред

popup.html

рд╕рднреА рдХреЛрдб рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рдХреЗрд╡рд▓ рдпрд╣ рдЬрд╛рдирдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ рдХрд┐ рдЗрд╕ рд╡рд┐рдВрдбреЛ рд╕реЗ рдкреГрд╖реНрда рдкрд░ рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ, рдкрд░рд┐рд╡рд╣рди рдХреИрд╕реЗ рд╕реЗрдЯ рдХрд░реЗрдВ?

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдкреНрд░рд▓реЗрдЦрди рддреБрд░рдВрдд рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИ:
chrome.tabs.executeScript( null , {code: "alert('hello!')" });

* This source code was highlighted with Source Code Highlighter .

рдпрд╛ рдЖрдк рдпрд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
chrome.tabs.executeScript( null , {file : тАЬscript.jsтАЭ});

* This source code was highlighted with Source Code Highlighter .

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

рдЯреИрдм рд╕реЗ рдЬреБрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЙрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:
var port = chrome.tabs.connect(id);

* This source code was highlighted with Source Code Highlighter .

рдЬрд╣рд╛рдВ рдЖрдИрдбреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдЖрд╡рд╢реНрдпрдХ рдЯреИрдм рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИред рдкреЛрд░реНрдЯ рд▓реМрдЯрд╛рдпрд╛ рдЧрдпрд╛ рдЯреНрд░рд╛рдВрд╕рдкреЛрд░реНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИред

рдкреГрд╖реНрдарднреВрдорд┐ рдкреГрд╖реНрда рдпрд╛ рдкреЙрдк-рдЕрдк рд╡рд┐рдВрдбреЛ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
var port = chrome.extension.connect();

* This source code was highlighted with Source Code Highlighter .

рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ - рдХреЛрдИ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреА рдЬрд░реВрд░рдд рдирд╣реАрдВред
рдЖрдк рдЗрди рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХреЛ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рд╕реБрди рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рд╡рд╣рд╛рдБ рдФрд░ рд╡рд╣рд╛рдБ:

chrome.extension.onConnect.addListener( function (port){
port.onMessage.addListener(MyFunc);
});


* This source code was highlighted with Source Code Highlighter .

рдСрдирдореИрд╕реЗрдЬ рдХреНрдпреЛрдВ рдмрд╛рдж рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред

рд╡рд╛рдкрд╕ popup.html рдкрд░ рдЬрд╛рдПрдВред
рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдореИрдВ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдЗрд╕ рдкреГрд╖реНрда рдкрд░ "рдХрд░реНрддрд╡реНрдп рдкрд░" рд╣реИред
рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╕реНрдпрд╛ рдмрди рдЧрдИ рдХрд┐ рдЖрдкрдХреЛ рдЯреИрдм рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрд╣ рдЖрдИрдбреА рдирд╣реАрдВ рдкрддрд╛ рд╣реИред рдпрд╣ рдордЬрд╝реЗрджрд╛рд░ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рд╡рд░реНрддрдорд╛рди рдЯреИрдм рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рд╣рдо рдХреЗрд╡рд▓ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рдмрдЬрд╛рдп рдЕрд╢рдХреНрдд рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ - рдЖрдкрдХреЛ рдЖрдИрдбреА рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдХреИрд╕реЗ?
рдореИрдВрдиреЗ рдЙрд╕ рдкрд░ рдмрд╣реБрдд рд╕рдордп рдорд╛рд░рд╛ рдФрд░ рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рдХрд┐рдпрд╛:
chrome.windows.getCurrent( function (w){
chrome.tabs.getSelected(w.id, function (t){
port = chrome.tabs.connect(t.id);
})
});


* This source code was highlighted with Source Code Highlighter .

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

рдЬрдм рд╕рднреА рдлрд╝рд┐рд▓реНрдЯрд░ рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рд╣рдо рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдкреЛрд░реНрдЯ рдкрд░ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рднреЗрдЬрддреЗ рд╣реИрдВ:
port.postMessage(obj);

* This source code was highlighted with Source Code Highlighter .

рдФрд░ рдЙрд╕ рдкрд▓ рдореЗрдВ script.js рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджреЗрддреА рд╣реИ

Script.js рдореЗрдВ , рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ:

chrome.extension.onConnect.addListener( function (port){
port.onMessage.addListener(Filtr);
});


* This source code was highlighted with Source Code Highlighter .

рд╣рдо рдкреЛрд░реНрдЯ рдХреЛ рд╕реБрдирддреЗ рд╣реИрдВ рдФрд░ рдкреЛрд░реНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдЖрдиреЗ рд╡рд╛рд▓реЗ рдХрдиреЗрдХреНрд╢рди рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред
рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХ рдСрдирдореИрд╕реЗрдЬ рдШрдЯрдирд╛ рд╣реИ - рдПрдХ рдШрдЯрдирд╛ рдЬрдм рдПрдХ рд╕рдВрджреЗрд╢ рдпрд╣рд╛рдВ рднреЗрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдо рдЕрдкрдиреЗ Filtr рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓рдЯрдХрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рджреВрд╕рд░реЗ рдЫреЛрд░ рдкрд░ port.postMessage () рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рднреЗрдЬреЗ рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рд╕рднреА рддрд░реНрдХреЛрдВ рдХреЛ рд▓реЗ рдЬрд╛рдПрдЧрд╛ред Filtr рдлрд╝рдВрдХреНрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕рднреА рдШреЛрд╖рдгрд╛рдУрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрдЧрд╛ред

рд╕рдм

рд╡рд╣ рд╕рдм рд╣реИред рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореБрдЭреЗ рдиреМрдХрд░реА рдЦреЛрдЬрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред
рдЕрдВрдЧреНрд░реЗрдЬреА рдХреЗ рдЬреНрдЮрд╛рди рдХреЗ рдмрд┐рдирд╛ рд╕рдордЭрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рдерд╛ред
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдЖрдк рдХрд╛рдо рдЖрдПрдВрдЧреЗред

рдкреНрд░рд▓реЗрдЦрди , рд╡рд┐рд╕реНрддрд╛рд░ ред

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


All Articles