рдХрд╕реНрдЯрдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдХреНрд░реЙрд╕-рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡реЗрдм рдПрдХреНрд╕рдЯреЗрдВрд╢рди рднрд╛рдЧ 4

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

рдЫрд╡рд┐рдЫрд╡рд┐рдЫрд╡рд┐рдЫрд╡рд┐рдЫрд╡рд┐

рднрд╛рдЧ 1 , рднрд╛рдЧ 2 , рднрд╛рдЧ 3

рдЕрдиреБрд╕реВрдЪрд┐рдд рдХрд╛рд░реНрдп


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

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рджреИрдирд┐рдХ рд╢реЗрдбреНрдпреВрд▓ рдореЛрдб рдореЗрдВ рдкреГрд╖реНрда рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЕрдХреНрд╕рд░ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рд╕рд╛рдЗрдЯ рдкрд░ рдореБрджреНрд░рд╛ рджрд░реЗрдВ рд╣реИрдВ рдФрд░ URL рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддреНрдпрдХреНрд╖ рдЕрдиреБрд░реЛрдз рд╣реИрд╢ рддрд░реНрдХ рдХреА рд░рдХреНрд╖рд╛ рдХрд░рддрд╛ рд╣реИред рдРрд╕реА рдкреНрд░рддрд┐ рдХреЗ рд░реВрдк рдореЗрдВ, рдЖрдк рд╕реЗрдВрдЯреНрд░рд▓ рдмреИрдВрдХ рдСрдл рдпреВрд░реЛрдк рдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдореМрдЬреВрджрд╛ рд╡рд┐рдирд┐рдордп рджрд░реЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ XML рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рд╣реА рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИрд╢реЗрдб URL рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рд╡реЗрдм рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рд╡рд┐рдирд┐рдордп рджрд░реЛрдВ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдЖрд╡реГрддреНрддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡реЗрдм рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдореБрдХреБрдЯ рдХреЗ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП, рджреИрдирд┐рдХ рдореЛрдб рдореЗрдВ рд╡рд┐рдирд┐рдордп рджрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ * * / 1 * * рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

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

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

console.log('script is ended'); 

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

 //initialize browser and page page.on('console', async msg => { for (let i = 0; i < msg.args().length; ++i) { if(await msg.args()[i].jsonValue() == 'script is ended') { await browser.close(); } } }); 

рдпрджрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдРрд╕реА рдХрдорд╛рдВрдб рдирд╣реАрдВ рд╣реИ, рддреЛ рдХрд╛рд░реНрдп рд╢реЗрдбреНрдпреВрд▓рд░ рдореЛрдб рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдкрд╛рд╕ рдЯрд╛рдЗрдорд░ рдЬрдмрд░рди рд╕рдорд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕реЗ рд╕реЗрдЯрдЯрд╛рдЗрдордЖрдЙрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд░рд▓ рддрд░реАрдХреЗ рд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 const timeLimitCron = 30; const timeout = setTimeout(async () => { if(browser) { await browser.close(); } clearTimeout(timeout); }, timeLimitCron * 1000 ); //time limit for cron, then forced closing, default 30 seconds 

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



рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ Puppeteer рдХрдВрд╕реЛрд▓ рд╕реЗ рдирд╡реАрдирддрдо рд╕рдВрджреЗрд╢ рд▓реЙрдЧ рднреА рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░реЙрдХреНрд╕реА рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╣реА рд╕рдВрдЪрд╛рд▓рди рдХреА рдЬрд╛рдВрдЪ рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред

рдХреАрдмреЛрд░реНрдб рд╢реЙрд░реНрдЯрдХрдЯ


рдкрд░реАрдХреНрд╖рдг рдФрд░ рдХреНрд╖реЗрддреНрд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреА рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡реЗрдм рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдкрд░ рдЙрдирдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЧрд░реНрдо рдХреБрдВрдЬреА рд╣реЛрдирд╛ рдЙрдкрдпреЛрдЧреА рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг Redability.js рд╣реИред рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рд╛рдЗрдЯ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ "рд╕реНрд╡рдЪреНрдЫ рджреГрд╢реНрдп" рдмрдирд╛рддреА рд╣реИред рдпрд╣реА рд╣реИ, рдЬреЗрдПрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕рд╛рдордЧреНрд░реА рдХреЗ рд╕рд╛рде рдкреГрд╖реНрда рдХреА рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдЙрдЪреНрдЪ рд╕рдВрднрд╛рд╡рдирд╛ рдХреЗ рд╕рд╛рде рд╢реАрд░реНрд╖рдХ, рд▓реЗрдЦрдХ рдФрд░ рдкреГрд╖реНрда рдХреА рд╕рд╛рдордЧреНрд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡реЗрдм рд╕рдВрд╕рд╛рдзрди рдХреЗ HTML рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░ рд╕рдХрддреА рд╣реИ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдорд╛рд░реНрдХрдЕрдк, рд╡рд┐рдЬреНрдЮрд╛рдкрди рдЖрджрд┐ рдХреЗ рдмрд┐рдирд╛ "рд╢реБрджреНрдз рд░реВрдк" рдореЗрдВ рдкрдврд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗ рд╕рдХрддреА рд╣реИред

рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдирд╛ рдХреЗрд╡рд▓ "рдПрдХреНрд╕рдХреНрдпреВрдЯ" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдкреЙрдк-рдЕрдк рд╡реЗрдм рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕реЗ рд╕рдВрднрд╡ рдерд╛ред рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд╛ рдпрд╣ рддрд░реНрдХ рдЕрдХреНрд╕рд░ рд╕реБрд░рдХреНрд╖рд╛ рдХрд╛рд░рдгреЛрдВ рд╕реЗ рдЙрдЪрд┐рдд рд╣реИред рд▓реЗрдХрд┐рди рдКрдкрд░ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдпрд╣ рдЖрдкрдХреЛ рд╡реЗрдм рд╕рдВрд╕рд╛рдзрди рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ "рд╢реБрджреНрдз рд░реВрдк" рдореЗрдВ рд▓рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред

рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рд╣реИ, рд╡реЗрдм рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдЖрдкрдХреЛ content.js рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ DOM рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рдВрдбреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рдУрдкрди рдЯреИрдм рдХрд╛ рд╡рд┐рдВрдбреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╕реНрдерд┐рддрд┐ рдХреАрд╕реНрдЯреНрд░реЛрдХреНрд╕ рдкрд░ рдирдЬрд╝рд░ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реЗрдм рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реЗрдм рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рддреА рд╣реИред

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

рд╕рд░реНрд╡рд░ рдХреА рдУрд░ рд╕реЗ рд╣реЙрдЯ рдХреА рдХреА рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

 var hotKeysMap = {keys: [], id: []}; for(var i in data.response.data) { hotKeysMap.keys.push(data.response.data[i]['hotkeys']); hotKeysMap.id.push(data.response.data[i]["_id"]); } if(hotKeysMap.keys) { getScript("hotkeys.js", function() { var script = document.createElement("script"); script.setAttribute("class", "gCore-hotKeys"); script.setAttribute("data-endpoint", event.data.endPoint); script.setAttribute("data-token", event.data.token); script.setAttribute("data-userid", event.data.userId); script.innerHTML = "GChotKeys = JSON.parse(\"" + JSON.stringify(hotKeysMap).replace(/"/g, "\\\"") + "\");\n" + "hotkeys(GChotKeys.keys.join(','), function(event, handler) {" + " event.preventDefault();" + " localStorage.setItem('runHotKeysScript', GChotKeys.id[GChotKeys.keys.indexOf(handler.key)]);" + "});"; document.body.appendChild(script); }); } 

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

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

Content.js рдореЗрдВ, рдЖрдк рдмрд╕ рдПрдХ рдмрд╛рд░ рд╕реЗрдХрдВрдб рдХреЗ рдмрд╛рдж рд▓реЛрдХрд▓рд╕реНрдЯреЛрд░реЗрдЬ рдорд╛рди рдХреА рдЬрд╛рдВрдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреЙрдк-рдЕрдк рд╡реЗрдм рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдореЗрдВ "рдПрдХреНрд╕рдХреНрдпреВрдЯ" рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░ рдЙрд╕реА рдбреЛрдо рдЬреЛрдбрд╝-рддреЛрдбрд╝ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

 setInterval(function() { if(localStorage.getItem('runHotKeysScript')) { // run user script localStorage.removeItem('runHotKeysScript'); } }, 1000); 

рдЗрд╕ рдкреНрд░рдХрд╛рд░, "рд╣реЙрдЯ рдХреАрдЬрд╝" рддрдХрдиреАрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдВрддрд░рд┐рдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рд╢рдХреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЬрд▓реНрджреА рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдирд┐рд╖реНрдХрд░реНрд╖


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

рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореЗрд░рд╛ рдЕрдиреБрднрд╡ рдЕрдзрд┐рдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХреНрд░реЙрд╕-рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡реЗрдм рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд▓рд┐рдЦрдирд╛ рдЖрд╕рд╛рди рдмрдирд╛ рджреЗрдЧрд╛ред

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

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


All Articles