Greasemonkey: рдлрд╝реНрд░реЗрдо рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 21 рд╕рд┐рддре░ 2017  ┬╖  48рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: greasemonkey/greasemonkey

Greasemonkey 4 рдЖрдЬ рддрдХ рдХреЗрд╡рд▓ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдкрд░ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ @noframes рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдирдорд╕реНрддреЗ,
рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ? рдпрд╣ рдмрд╣реБрдд рдкреБрд░рд╛рдирд╛ рджреЛрд╖ рд╣реИ рдФрд░ рдЖрдИрдлреНрд░реЗрдо рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ ...

рд╕рднреА 48 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

webNavigation.onCommitted рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдлреНрд░реЗрдо рдирд┐рд░реНрдорд╛рдг / рдкреГрд╖реНрда рдкреНрд░рддрд┐рдкрд╛рджрди 'рджреЗрдЦ' рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрджрд┐ рдлреНрд░реЗрдо рдЕрдкрдиреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреГрд╖реНрда рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд╣реАрдВ рдФрд░ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХрд░рддрд╛ рд╣реИ рддреЛ рд╢реНрд░реЛрддрд╛ рдЗрд╕реЗ рдкрдХрдбрд╝ рд▓реЗрдЧрд╛ред рдпрджрд┐ рд╡рд┐рдХрд▓реНрдк рдХреБрдВрдЬреА 'allFrames': true рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдереЗ рддреЛ рд╕рдорд╕реНрдпрд╛ _somewhat_ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИред рд╕реНрдерд┐рд░ рдПрдЪрдЯреАрдПрдордПрд▓ рдкреЗрдЬ рдореЗрдВ рдХрд┐рд╕реА рднреА рдлреНрд░реЗрдо рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬреЗрдХреНрд╢рди рд╣реЛрдЧреА, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдореВрд▓/рдпреВрдЖрд░рдПрд▓ рдорд┐рд▓рд╛рди рдХреА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдлреНрд░реЗрдо рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЗрдВрдЬреЗрдХреНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рд╕рдорд╛рдзрд╛рди рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВ рд╕реЛрдЪ рд╕рдХрддрд╛ рдерд╛, рд╡рд╣ рд╣реЛрдЧрд╛ webNavigation.oncommitted рдХреЛ webRequest.onResponseStarted рдХреЗ рд╕рд╛рде {'urls': ['<all_urls>'], 'types': ['main_frame', 'sub_frame']} рдлрд╝рд┐рд▓реНрдЯрд░ рд╕реЗ рдмрджрд▓рдирд╛ред

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

@arantius рдХреЛрдИ рдпреЛрдЬрдирд╛ @Sxderp рд╕реЗ рдареАрдХ рд╡рд┐рд▓рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП?

рдпрд╣ рдЙрди рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдИрдлреНрд░реЗрдо рдХреНрд░реЙрд╕-рдУрд░рд┐рдЬрд┐рдирд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЙрди рд╡рд┐рд╢реЗрд╖ рдЖрдИрдлреНрд░реЗрдо рдкрд░ рдЬреАрдПрдо рдЪрд▓рд╛рдП рдмрд┐рдирд╛ рдХрд┐рд╕реА рднреА рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рдВрд╢реЛрдзрди рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред

рдзрдиреНрдпрд╡рд╛рдж !

рдЗрд╕реЗ рдпрд╛рдж рдХрд┐рдпрд╛, рдЬрд▓реНрдж рд╣реА рдЗрд╕ рдкрд░ рдЧреМрд░ рдХрд░реЗрдВрдЧреЗред

рдкреБрд░рд╛рдиреА рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рдмрд╕ рдПрдХ рдЕрд╡рд▓реЛрдХрди, рдкрддрд╛ рдирд╣реАрдВ, рдЕрдЧрд░ рдпрд╣ рдорджрдж рдХрд░рддрд╛ рд╣реИ ...

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

рдЬрдм рдореИрдВ рдкреГрд╖реНрда рдХреЛ рдмрд╣реБрдд рддреЗрдЬрд╝реА рд╕реЗ рд░реАрдлреНрд░реЗрд╢ рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореИрдВ рдХреЗрд╡рд▓ рдЭрд┐рд▓рдорд┐рд▓рд╛рд╣рдЯ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВред

рдкреБрд░рд╛рдиреА рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рджреМрд░рд╛рди рдмрд╕ рдПрдХ рдЕрд╡рд▓реЛрдХрди, рдкрддрд╛ рдирд╣реАрдВ, рдЕрдЧрд░ рдпрд╣ рдорджрдж рдХрд░рддрд╛ рд╣реИ ...

рдХреНрдпрд╛ рдпрд╣ рдореЗрд░реЗ рдкреИрдЪ рдХреЗ рд╕рд╛рде рд╣реИ рдпрд╛ рдЬрд╛рд░реА рдХрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рд╣реИ?

рдЙрд╣, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ 4.0 рд░рд┐рд▓реАрдЬ рдереА ...
рдореИрдВ @4.1b3 рдерд╛, рд▓реЗрдХрд┐рди рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рд░рд┐рд▓реАрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдг (рдЕрдм рддрдХ!)

рдпрд╣рд╛рдБ рд╡рд╣реА iframes рдЬреИрд╕реЗ Eselce рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред рдХрд┐рд╕реА рддрд░рд╣ рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЖрдИрдлреНрд░реЗрдо рдпрд╛ рдкреЗрдЬ рд▓реЛрдб рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЕрдЧрд░ рдореИрдВ рдЗрд╕ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ рдХреЗрд╡рд▓ 1 рдФрд░ "рд╕реНрд╡рдпрдВ! == рд╢реАрд░реНрд╖" рдорд┐рд▓рддрд╛ рд╣реИ:

console.log('1');
if (self !== top) {
   console.log('self !== top');
   setTimeout(function() {
      console.log('Timeout');
   }, 2000);  
} else {
   console.log('self === top');
}

рд▓реЙрдЧ рдореЗрдВ "рдЯрд╛рдЗрдордЖрдЙрдЯ" рдирд╣реАрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рди рд╣реА рд╕рднреА рдлрд╝рдВрдХреНрд╢рди рдФрд░ рдмрд╛рдЗрдВрдб рд╣реИрдВред

рдореИрдВ 4.1b3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред

рдореЗрд░реЗ рдкрд╛рд╕ рдХреНрд╡рд╛рдВрдЯрдо рдкрд░ рдЬреАрдПрдо 4.0 рдЪрд▓рд╛рдиреЗ рдХрд╛ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реИред рдореИрдВрдиреЗ рджреЛ рдкреГрд╖реНрдареЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдбрдореА рдЙрджрд╛рд╣рд░рдг рд▓рд┐рдЦрд╛: main.html рдФрд░ framed.html , рдФрд░ рдПрдХ рдЬреАрдПрдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдкреГрд╖реНрда рдкрд░ рд▓реЛрдб рд╣реЛ рдЬрд╛рддреА рд╣реИ рдФрд░ рдЙрд╕ рдкреГрд╖реНрда рдХреЗ рдпреВрдЖрд░рдПрд▓ рдХреЛ рдЖрдЙрдЯрдкреБрдЯ рдХрд░рддреА рд╣реИ рдЬрд┐рд╕ рдкрд░ рдпрд╣ рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИред

рдЕрдзрд┐рдХрд╛рдВрд╢ рд╕рдордп, рдореБрдЭреЗ рдХреЗрд╡рд▓ main.html рдмрд╛рд░реЗ рдореЗрдВ рд╕реВрдЪрдирд╛рдПрдВ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рд▓рдЧрднрдЧ 5% рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдпрджрд┐ рдореИрдВ F5 рдХреЛ рджрдмрд╛рдП рд░рдЦрддрд╛ рд╣реВрдВ, рддреЛ рдореБрдЭреЗ framed.html рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд╕реВрдЪрдирд╛ рднреА рдорд┐рд▓ рд╕рдХрддреА рд╣реИред

рдХреНрдпрд╛ рдкреИрдЪ рдХреЗ рдмрд╛рд╣рд░ рд╣реЛрдиреЗ рддрдХ рдЬреАрдПрдо 4.0 рдХреЛ рдЖрдИрдлреНрд░реЗрдо рдХреЗ рдЕрдВрджрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдк рд╕реЗ рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╣реИрдХ рд╣реИ?

рдореБрдЭреЗ рдЕрднреА рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ <embed src="..."> рдореЗрдВ рдордЬрд╝рдмреВрддреА рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди <iframe src="..">
рдореИрдВрдиреЗ рдПрдХ рдЫреЛрдЯреА рдЯреЗрд╕реНрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦреА:
https://openuserjs.org/scripts/cuzi/iframe_embed_Test_Greasemonkey_4

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

рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рд╣реИ?

рдЗрд╕ рд╕реВрддреНрд░ рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рд╛рд░рд╛рдВрд╢ (рдореБрджреНрджрд╛):

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

рдореИрдВ рдЗрди рдЗрдВрдЯрд░реНрдирд▓ рдореЗрдВ рдЗрддрдирд╛ рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдХреЛрдИ рд╣реИ ...

рдПрдХ рдЕрд╕реНрдерд╛рдпреА рд╕реБрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдПрдореНрдмреЗрдб ( рдЙрджрд╛рд╣рд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ ) рдХреЗ @cvzi рдХреЛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ <embed src="..."> рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ) .

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

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, Violentmonkey рдФрд░ Tampermonkey рдЕрднреА рднреА рд╡рд┐рд╢реЗрд╖ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдкреБрд░рд╛рдиреА GM_ рдирд╛рдордХрд░рдг рдпреЛрдЬрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрднреА рддрдХ рдкреЛрд░реНрдЯреЗрдмрд▓ рдирд╣реАрдВ рд╣реИрдВред

https://github.com/greasemonkey/gm4-polyfill

Tampermonkey => GM.* рдХреЙрд▓, рдпрджрд┐ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
Violentmonkey => GM.* рдХреЙрд▓
Greasemonkey -3.17 / FF -56.0 => GM.* рдХреЙрд▓
Greasemonkey 4.0+ / FF 57.0+ => рдирд┐рд░реНрдорд┐рдд GM.* рдХреЙрд▓

// <strong i="11">@grant</strong>        GM.getValue
// <strong i="12">@grant</strong>        GM.setValue
// <strong i="13">@require</strong>      https://greasemonkey.github.io/gm4-polyfill/gm4-polyfill.js
// <strong i="14">@grant</strong>        GM_getValue
// <strong i="15">@grant</strong>        GM_setValue

рдХреНрдпрд╛ @Sxderp рдХрд╛ рдлрд┐рдХреНрд╕ рдЕрднреА рддрдХ рдореБрдЦреНрдп рд╢рд╛рдЦрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ? рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдореИрдВ рдЙрд╕рдХрд╛ рдХрд╛рдВрдЯрд╛ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдХреНрдпрд╛ @Sxderp рдХрд╛ рдлрд┐рдХреНрд╕ рдЕрднреА рддрдХ рдореБрдЦреНрдп рд╢рд╛рдЦрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ? рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдореИрдВ рдЙрд╕рдХрд╛ рдХрд╛рдВрдЯрд╛ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

  1. рдирд╣реАрдВ рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред
  2. рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдпрд╣ рдореЗрд░реЗ рдкреАрдЖрд░ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдХрд┐ рдореИрдВ рдорд╛рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдЗрд╕рд▓рд┐рдП рд░рд┐рдмреЗрд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рддреЛ рд╢рд╛рдЦрд╛ рд╕реНрд╡рдпрдВ рдХреБрдЫ рдореМрдЬреВрджрд╛ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рдпрд╛рдж рдХрд░ рд░рд╣реА рд╣реИред
  3. рдореИрдВрдиреЗ рдкреАрдЖрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд╕реБрдЭрд╛рдП рдЧрдП рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рднреА рдХрднреА рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдЙрди рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдХреНрдпреЛрдВрдХрд┐ рдореЛрдЬрд╝рд┐рд▓рд╛ рд▓рдЧрд╛рддрд╛рд░ рдЪреАрдЬреЛрдВ рдХреЛ рдЦрд░рд╛рдм рдХрд░рддрд╛ рд╣реИ, рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
  4. рдпрджрд┐ рдЖрдк рдЕрднреА рднреА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рдЕрдиреБрд╢рдВрд╕рд┐рдд рдирд╣реАрдВ) рддреЛ рдЖрдк рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

  1. git clone -b use-on-response-started-for-execute --single-branch https://github.com/Sxderp/greasemonkey.git [1]
  2. ./package.sh рдЪрд▓рд╛рдПрдБ, рдпрд╣ рдПрдХ XPI рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдЧрд╛ред
  3. Firefox рдореЗрдВ about:config рдкрд░ рдЬрд╛рдПрдВ рдФрд░ xpinstall.signatures.required рд╕реЗ false
  4. рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдореЗрдВ about:addons рдкрд░ рдЬрд╛рдПрдВ, рдХреЙрдЧ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ рдЪреБрдиреЗрдВред
  5. рдЪрд░рдг 2 рдореЗрдВ рдмрдирд╛рдП рдЧрдП XPI рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред

[1] рдпрджрд┐ рдЖрдкрдХрд╛ рдЧрд┐рдЯ рдХрд╛ рд╕рдВрд╕реНрдХрд░рдг -b рдФрд░ / рдпрд╛ --single-branch рдЭрдВрдбреЗ (рдЧрд┐рдЯ рдХрд╛ рдкреБрд░рд╛рдирд╛ рд╕рдВрд╕реНрдХрд░рдг) рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рддреЛ рдЖрдк git clone https://github.com/Sxderp/greasemonkey.git рдФрд░ git checkout use-on-response-started-for-execute ред

рдирдорд╕реНрддреЗ,
рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ? рдпрд╣ рдмрд╣реБрдд рдкреБрд░рд╛рдирд╛ рджреЛрд╖ рд╣реИ рдФрд░ рдЖрдИрдлреНрд░реЗрдо рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ ...

рдПрдХ рдЕрдиреБрд╕реНрдорд╛рд░рдХ рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрд▓ 13 рдорд╛рд░реНрдЪ рд╣реИ ( Firefox 59.0 )...

рдореИрдВ @Sxderp рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛

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

рдЕрд╕рд▓ рдореЗрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рд╕рдмреВрдд рд╣реИ, рдХрд┐ (рдореЗрд░реЗ рд╕рд┐рд╕реНрдЯрдо рдкрд░) рд╢реНрд░реЛрддрд╛ executeUserscriptOnNavigation рдХреЛ chrome.webNavigation.onCommitted рд╕рд╛рде рднрд░реЛрд╕реЗрдордВрдж рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрд╛рдХрд┐ chrome.tabs.executeScriptInFrame рдХреЛ рд╕рд╣реА frameId рд╕рд╛рде рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред . рдпрд╣ рдлреНрд░реЗрдо рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реА рд╕рднреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ? рдЖрдИрдлреНрд░реЗрдо рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ chrome.webRequest.onResponseStarted рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП! (рдпрд╛ рдЖрдкрдХрд╛ рдорддрд▓рдм рдерд╛, рдпрд╣ рдШрдЯрдирд╛ рдкрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдлреНрд░реЗрдо рджрд┐рдЦрд╛рдИ рдирд╣реАрдВ рджреЗ рд░рд╣рд╛ рд╣реИ?) рдЗрд╕реЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ ...

рдХреНрдпрд╛ chrome.tabs.executeScriptInFrame рдФрд░ frameId рд╕рд╛рде рдХреЛрдИ рдЬреНрдЮрд╛рдд рдмрдЧ рд╣реИ? рд╕рд╛рд▓реЛрдВ рдкрд╣рд▓реЗ рд╕рдорд╕реНрдпрд╛рдПрдВ рдереАрдВ, рд▓реЗрдХрд┐рди рдЕрдм рдЙрдиреНрд╣реЗрдВ рдареАрдХ рдХрд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред all_frames рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ frameId рдорд╛рдиреНрдп рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╡рд┐рдХрд▓реНрдк matchAboutBlank рдХреЛ true рдХрд░рдирд╛ рдорд╛рдпрдиреЗ рд░рдЦрддрд╛ рд╣реИ (рдЕрдиреНрдпрдерд╛ executeScript рдиреЗ рдПрдХ рддреНрд░реБрдЯрд┐ <unavailable> рд▓реМрдЯрд╛ рджреА), рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореБрдЭреЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдордЭ рдирд╣реАрдВ рдЖрдпрд╛ рдХрд┐ about:blank рд╕рд╛рдорд╛рди (рдпрд╣ рдХрд╣рд╛рдБ рд╣реИ?)...

рдХреЛрдИ рд╡рд┐рдЪрд╛рд░?

рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ? рдпрд╣ рдореВрд▓ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рд╣реИ рдЬреЛ рдкреНрд░рд╛рд░рдВрдн рд╕реЗ рдЧрд╛рдпрдм рд╣реИ... рдореБрдЭреЗ рдЖрд╢рд╛ рд╣реИ, рдореИрдВрдиреЗ рдЗрд╕рдХрд╛ рдЧрд▓рдд рдЕрд░реНрде рдирд┐рдХрд╛рд▓рд╛ рд╣реИред

@Eselce , рдпрд╣ рдмрд╣реБрдд рд╕рдордп рдкрд╣рд▓реЗ рдерд╛ рдФрд░ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдкреВрд░реА рддрд░рд╣ рдпрд╛рдж рд╣реИ рдХрд┐ рдореИрдВ рдХреНрдпрд╛ рдХрд╣ рд░рд╣рд╛ рдерд╛ рд▓реЗрдХрд┐рди рдореИрдВ рдЗрд╕реЗ рдПрдХ рд╢реЙрдЯ рджреВрдВрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЬреАрдПрдо 3.x рдлреНрд░реЗрдо рдорд┐рд▓рд╛рди рдХреА рдореЗрд░реА рд╕рдордЭ рд╕рд╣реА рд╣реЛред рдпрд╣реА рд╣реИ, рдкреНрд░рддреНрдпреЗрдХ рдлреНрд░реЗрдо рдореВрд▓ + рдкрде рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреМрди рд╕реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╕рд┐рд░реНрдл рдореВрд▓ рджрд╕реНрддрд╛рд╡реЗрдЬ рдирд╣реАрдВред

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

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд▓реЛрдб рдХреЗ рдмрд╛рдж, рдЕрдЧрд░ рдореИрдВрдиреЗ рдХрд╣реАрдВ рдПрдХ рдлреНрд░реЗрдо рдХреЛ 'рдиреЗрд╡рд┐рдЧреЗрдЯ' рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирд╛ рджрд┐рдпрд╛ рддреЛ onCommitted рдХреЙрд▓рдмреИрдХ рдХреЛ рдХреЙрд▓ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдирдП рд╕реНрдерд╛рди рдкрд░ рдлреНрд░реЗрдо рдореЗрдВ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдЙрдкрд░реЛрдХреНрдд рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП all_frames рд╡рд┐рдХрд▓реНрдк рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкреГрд╖реНрда рдкрд░ рдлрд╝реНрд░реЗрдо рдореЗрдВ рдЕрдВрддрдГрдХреНрд╖рд┐рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдлрд╝реНрд░реЗрдо рдХреЗ рдореВрд▓ + рдкрде рдХрд╛ рдареАрдХ рд╕реЗ рдорд┐рд▓рд╛рди рди рдХрд░рдиреЗ рдХреА рд╕реНрдкрд╖реНрдЯ рдХрдореА рдереА рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХреНрдпрд╛ рдЪрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдХреНрдпрд╛ рдирд╣реАрдВ рдЪрд▓рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдПрдХ рддрд░рдл, рдореИрдВрдиреЗ рдпрд╣ рднреА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ all_frames рдХреБрдВрдЬреА рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдЧрдП рдлреНрд░реЗрдо рдореЗрдВ рдЗрдВрдЬреЗрдХреНрдЯ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

[1] рдХреНрдпрд╛ рдпрд╣ рдореБрджреНрджрд╛ рдЕрднреА рднреА рдореМрдЬреВрдж рд╣реИ, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ред рдЕрдЧрд░ рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ рдпрд╣ рдореБрджреНрджрд╛ рдПрдлрдПрдл 52 рдИрдПрд╕рдЖрд░ рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди 56 (57?) (рдЗрд╕рд▓рд┐рдП рдкреНрд░рддрд┐рдЧрдорди) рдореЗрдВ рдореМрдЬреВрдж рдерд╛ред рд╢рд╛рдпрдж рдЗрд╕реЗ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдореИрдВ рдЖрдкрд╕реЗ рд▓рдЧрднрдЧ рд╕рднреА рдмрд┐рдВрджреБрдУрдВ рдкрд░ рд╕рд╣рдордд рд╣реВрдВред

рдФрд░ рдЖрдк рд╕рд╣реА рд╣реИрдВ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдлреНрд░реЗрдо рдЕрд▓рдЧ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдпрд╣ рдПрдХ рд╕рдВрдкреВрд░реНрдг рдЯреИрдм рдерд╛ (рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ window рдФрд░ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ document , рдПрдХ рдлреНрд░реЗрдо рдореЗрдВ рдПрдореНрдмреЗрдбреЗрдб)ред

рдЦреИрд░, рдореИрдВрдиреЗ рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рдореЗрдиреВ/рдлреНрд░реЗрдо рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╢рд╛рдпрдж рдореБрдЭреЗ рдПрдХ рдЕрд▓рдЧ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЬрдм рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ "рдпрд╣ рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛", рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдорддрд▓рдм рд╢реНрд░реЛрддрд╛ рдХреА рд╢реБрджреНрдз рдХреЙрд▓ рд╣реИ?

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

all_frames рдЧрд▓рдд location (рдЕрд▓рдЧ window , рдЕрд▓рдЧ document ) рдХреЗ рдХрд╛рд░рдг рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдмреАрдЯреАрдбрдмреНрд▓реВ: рдореЗрдиреВ рдХреЗрд╡рд▓ рдкреНрд░рддреНрдпреЗрдХ рдЯреИрдм рдХреЗ рдореЗрдирдлреНрд░реЗрдо рдпреВрдЖрд░рдПрд▓ рдХреЛ рд╕рдВрднрд╛рд▓рддрд╛ рд╣реИ - рдпрджрд┐ рдореЗрдиреВ рдЧрд▓рдд рд╣реИ, рддреЛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ ...

рдЬрдм рдЖрдк рдХрд╣рддреЗ рд╣реИрдВ "рдпрд╣ рдирд┐рдХрд╛рд▓ рджрд┐рдпрд╛", рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдорддрд▓рдм рд╢реНрд░реЛрддрд╛ рдХреА рд╢реБрджреНрдз рдХреЙрд▓ рд╣реИ?

рдЙрд╕ рд╡рд┐рд╢реЗрд╖ рд╕рдВрджреЗрд╢ рдореЗрдВ рдореЗрд░рд╛ рдорддрд▓рдм рдерд╛ ' onCommitted.addListener рдореЗрдВ рдкрд╛рд░рд┐рдд рд╕рдорд╛рд░реЛрд╣ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред'ред

рдирдорд╕реНрддреЗ,

рдореИрдВрдиреЗ рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреЛ рдзреНрдпрд╛рди рд╕реЗ рдкрдврд╝рд╛ рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рдордЭ рдирд╣реАрдВ рдЖ рд░рд╣рд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЕрдкрдиреА рд╕реНрдерд╛рдиреАрдп рд▓рд┐рдкрд┐ ".user.js" рдкрд░ рдЕрдкрдиреЗ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реВрдВред рдореИрдВ рдЖрдкрдХрд╛ рд╕рдорд╛рдзрд╛рди рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ? рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВ рдирдпрд╛ рд╣реВрдБред

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

рдЖрдкрдХреА рд╕рд╣рд╛рдпрддрд╛рдХреЗ рд▓рд┐рдП рдЕрдЧреНрд░рд┐рдо рдореЗрдВ рдЖрдкрдХрд╛ рд╢реБрдХреНрд░рд┐рдпрд╛

рдЖрдкрдиреЗ рдареАрдХ-рдареАрдХ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдХреНрдпрд╛ рд╣реИ: рдпрд╣ @noframes рдХреА рддрд░рд╣ рд╕рдХреНрд░рд┐рдп рд╣реИред рдлрд╝реНрд░реЗрдо рд╕рд╛рдордЧреНрд░реА рдХрд╛ URL рдЖрдкрдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдХреНрд░рд┐рдп рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЬрд▓реНрдж рд╣реА рдареАрдХ рд╣реЛ рдЬрд╛рдПрдЧрд╛ (рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдВрдбреЛ рдореЗрдВ рдлреНрд░реЗрдо рдЦреЛрд▓рдирд╛ рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИ) ...

рдзрдиреНрдпрд╡рд╛рдж рдПрд╕реЗрд▓реНрд╕ред
рдФрд░ рд╣рдореЗрд╢рд╛ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдХреЗ рдЕрдкрдбреЗрдЯ рдХреЗ рдмрд╛рдж рд╕реЗ, рдореИрдВ рд╣реЗрдбрд░ рдореЗрдВ рд▓рдХреНрд╖рд┐рдд рд╕рд╛рдЗрдЯ рдкрд░ рдкрд╣рд▓реЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╕рднреА scipts '.js' (рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рд╕рд╛рде) рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рд╣реВрдВред (jquery рд╕рд╣рд┐рдд)
рдФрд░ рдпрд╣ рд╡рд╣реА рдирд╣реАрдВ рд╣реИ.... рдпрд╣ рдмрдЧ рдпрд╛ рд╡рд┐рд░реЛрдз рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИред
рдХреНрдпрд╛ рдЖрдк рднреА рдЬрд╛рдирддреЗ рд╣реИрдВ рдпрд╣ рд╕рдорд╕реНрдпрд╛?

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

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

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд╛рдЗрдЯ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдореБрдЭреЗ рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рд╢реБрд░реВ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдбреЛрдореЗрди рдкрд░ рдкрдВрдХреНрддрд┐рдпреЛрдВ = "100%, 0" (рд╕реНрдХреНрд░реАрди рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлреНрд░реЗрдо) рдХреЗ рд╕рд╛рде рдПрдХ рдлреНрд░реЗрдорд╕реЗрдЯ/рдлреНрд░реЗрдо рд▓реЛрдб рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдлрд╝реНрд░реЗрдо рдореЗрдВ рдордзреНрдпрд╡рд░реНрддреА рдлрд╝реНрд░реЗрдорд╕реЗрдЯ/рдлрд╝реНрд░реЗрдо рдХреЗ рдбреЛрдореЗрди рдХреЗ рднреАрддрд░ рдПрдХ рдлрд╝реНрд░реЗрдорд╕реЗрдЯ / 3 рдлрд╝реНрд░реЗрдо рд╣реЛрддреЗ рд╣реИрдВред

рдХреБрдЫ 1+3 рдЪрд╛рдЗрд▓реНрдб рдлреНрд░реЗрдо рдХреА рдЬреАрдПрдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ "рдмреНрд▓рд┐рдк" рд╣реЛ рдЬрд╛рдПрдЧреА, рдлрд┐рд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрдХреНрд░ рдХреЗ рдмрд╛рдж рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рдПрдЧреА - рд╡реЗ рдХрд┐рд╕реА рднреА рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдСрдкрд░реЗрд╢рди рдХреЗ рдмрд╛рдж рдХрднреА рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдЖрддреА рд╣реИрдВред рдпрд╣ рдЗрд╕ рдзрд╛рдЧреЗ рдкрд░ рд╡рд░реНрдгрд┐рдд рдХреБрдЫ рд╡реНрдпрд╡рд╣рд╛рд░реЛрдВ рдкрд░ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреМрди рд╕реЗ "рдмреНрд▓рд┐рдк" рдФрд░ рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░/рдЬреАрдПрдо рд╕рдВрд╕реНрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рднрд┐рдиреНрди рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдирд╣реАрдВ рд╣реИ; рдкреИрдЯрд░реНрди рдЕрдЬреАрдм рд╣реИрдВ рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рд╕реЗрдЯрдЕрдк рдХреЗ рд▓рд┐рдП 100% рджреЛрд╣рд░рд╛рдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВред

  1. рдкрд╣рд▓рд╛ рдлреНрд░реЗрдорд╕реЗрдЯ/рдлреНрд░реЗрдо рдХрднреА рднреА рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рдирд╣реАрдВ рдЖрдПрдЧрд╛ред рдореИрдВрдиреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрдХреНрд░ рдореЗрдВ рдФрд░ рджреЗрд░реА рдХреЗ рдмрд╛рдж, window.document рдФрд░ рдЕрд╕реБрд░рдХреНрд╖рд┐рддрд╡рд┐рдВрдбреЛ.рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рджреЛрдиреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдлреНрд░реЗрдо рдЯреИрдЧ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдФрд░ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рднреА рдЙрд╕ рдлреНрд░реЗрдо рдХреА рдЬреАрдПрдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХрдВрд╕реЛрд▓.рд▓реЙрдЧ рдХреЛ рдХреБрдЫ рднреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдирд╣реАрдВ рдмрдирддрд╛ рд╣реИред ( @include * рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдХреЛрдИ @exclude рдпрд╛ рдЕрдиреНрдп URL рдлрд╝рд┐рд▓реНрдЯрд░рд┐рдВрдЧ рдирд╣реАрдВ рд╣реИред)
  2. рдмрд╛рдж рдХреЗ рдХреБрдЫ рд╡реНрдпрд╡рд╣рд╛рд░ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 52.8/рдЬреАрдПрдо 4.1 рдФрд░ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 60.0/рдЬреАрдПрдо 4.3 рдХреЗ рдмреАрдЪ рднрд┐рдиреНрди рд╣реЛрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдореИрдВ рдкреНрд░рддреНрдпреЗрдХ рдорд╛рдорд▓реЗ рдореЗрдВ рдлреНрд░реЗрдо 'рдЬреАрдПрдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ "рдмреНрд▓рд┐рдк" рд╣реЛ рд╕рдХреЗ рдХрд┐ @noframes рд╕реЗрдЯ рд╣реИ рдпрд╛ рдирд╣реАрдВред рдпрд╣ @includes * рдХреЗ рд╕рд╛рде рд╣реИ, рдХреЛрдИ рдЕрдиреНрдп URL рдлрд╝рд┐рд▓реНрдЯрд░ рдирд╣реАрдВ рд╣реИред рдЗрдиреНрд╣реЗрдВ рдХрднреА рднреА @noframes рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдмреНрд▓рд┐рдк рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВрдиреЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ window.top!==window, рдпрд╛рдиреА рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЬрд╛рдирддрд╛ рд╣реИ (рдпрд╛ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП) рдпреЗ рдлреНрд░реЗрдо рдореЗрдВ рд╣реИрдВред
  3. рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 52.8 / рдЬреАрдПрдо 4.1 рдореЗрдВ, рдЕрдЧрд▓рд╛ рдлреНрд░реЗрдорд╕реЗрдЯ / 3 рдлреНрд░реЗрдо рд╣рдореЗрд╢рд╛ рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рд░рд╣реЗрдЧрд╛ред рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 60.0/рдЬреАрдПрдо 4.3 рдореЗрдВ, рд╡реЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдлреНрд░реЗрдо рд▓реЛрдб рдкрд░ "рдмреНрд▓рд┐рдк" рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
  4. рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 60.0/рдЬреАрдПрдо 4.3 рдореЗрдВ, 3 рдлреНрд░реЗрдо рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдПрдХ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдирд╛ рдЬреЛ 3 рдлреНрд░реЗрдо рдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рддрд╛ рд╣реИ (рдПрдВрдХрд░ рд▓рд┐рдВрдХ рдкрд░ "рд▓рдХреНрд╖реНрдп" рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд╣реАрдВ) "рдмреНрд▓рд┐рдк" рдХрд░реЗрдЧрд╛ - рдирдпрд╛ рдпреВрдЖрд░рдПрд▓ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд┐рдП рдЧрдП рдлрд╝реНрд░реЗрдо рдХреЗ рд▓рд┐рдП рдкреБрд░рд╛рдирд╛ URL. (рдпрд╣ рдЙрди рдлрд╝реНрд░реЗрдореЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ рдЬреЛ рдЖрдЗрдЯрдо # 3 рдореЗрдВ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд▓реЛрдб рдкрд░ рдмреНрд▓рд┐рдк рд╣реЛ рдЧрдП рдереЗред)
  5. рдпрд╣рд╛рдБ рд╕рдмрд╕реЗ рдЕрдЬреАрдм рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред рджреЛрдиреЛрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗрдЯрдЕрдк рдореЗрдВ --- рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рддреЗ рд╣реБрдП, рд╣рдордиреЗ рдлреНрд░реЗрдорд╕реЗрдЯ рдХреА 2 рдкрд░рддреЛрдВ, 4 рдХреБрд▓ рдлрд╝реНрд░реЗрдореЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреГрд╖реНрда рдЦреЛрд▓рд╛ рд╣реИ, рдФрд░ рдПрдХ рд╣реА рдкреГрд╖реНрда рдкрд░ рдПрдХ рдЕрд▓рдЧ рдлрд╝реНрд░реЗрдо рдХреЛ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлрд╝реНрд░реЗрдо рдореЗрдВ рдПрдХ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ рд╣реИред рдЗрд╕реЗ рдирд╛рдо рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рд╢реБрд░реВ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рджреВрд╕рд░реЗ рд╕реНрддрд░ рдХреЗ рдлреНрд░реЗрдорд╕реЗрдЯ рдореЗрдВ "top.htm", "menu.htm" рдФрд░ "start,htm" рдлреНрд░реЗрдо рдереЗред рд╣рдордиреЗ "menu.htm" рдлреНрд░реЗрдо рдореЗрдВ рдПрдХ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдлреНрд░реЗрдо "start.htm" рдХреЛ "content.htm" рдкрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░реЗрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдКрдкрд░ рдмрддрд╛рдП рдЧрдП рдкреНрд░рддрд┐ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕реЗрдЯрдЕрдк рдХреЗ рд╕рдорд╛рди рд▓реЗрдХрд┐рди рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рд╕рд╛рдеред рдЕрдм, рд╣рдо "content.htm" рдлреНрд░реЗрдо рдХреЗ рдЕрдВрджрд░ рдПрдХ рд▓рд┐рдВрдХ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рдЙрд╕реА рдлреНрд░реЗрдо, рдПрдХ рд╣реА рдбреЛрдореЗрди рдХреЗ рдЕрдВрджрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, "content.htm" рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рди рдХреЗрд╡рд▓ "рдмреНрд▓рд┐рдк" рд╣реЛрдЧреА... рдпрд╣ GM.xmlHttpRequest рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рднреА рдЬреАрд╡рд┐рдд рд░рд╣реЗрдЧреА - рдПрдХ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдШрдЯрдирд╛ред рдЗрд╕ рд╕рдордп, "content.htm" рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдбрд┐рд╕реНрдкреНрд▓реЗ рдкрд░ рдХрд╣реАрдВ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдЧреАред

рддреЛ рдореБрдЭреЗ рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдлреНрд░реЗрдо рдХреЗ рднреАрддрд░ рдкреГрд╖реНрдареЛрдВ рдкрд░ рдЬреАрдПрдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣реА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдкреЗрдЬ рд▓реЛрдб рдХреЗ рдмрдЬрд╛рдп рдкреЗрдЬ рдЕрдирд▓реЛрдб рдкрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЛрдб рдХреА рдЬрд╛ рд░рд╣реА рд╣реИред @run-at рдХреЛ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝-рдкреНрд░рд╛рд░рдВрдн рдореЗрдВ рд╕реЗрдЯ рдХрд░рдирд╛ рдФрд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЕрд╕реБрд░рдХреНрд╖рд┐рддрд╡рд┐рдВрдбреЛ.рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ DOMContentReady рдИрд╡реЗрдВрдЯ рдореЗрдВ рдбрд╛рд▓рдиреЗ рд╕реЗ рдХреЛрдИ рд╕реБрдзрд╛рд░ рдирд╣реАрдВ рд╣реБрдЖред (рдЗрд╕реЗ рд╡рд┐рдВрдбреЛ рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛ред рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрднреА рднреА рдШрдЯрдирд╛ рдХреЛ рд╕рдХреНрд░рд┐рдп рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред)

-рд░рдпрд╛рди

рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 52.8 / рдЬреАрдПрдо 4.1 рдореЗрдВ, рдЕрдЧрд▓рд╛ рдлреНрд░реЗрдорд╕реЗрдЯ / 3 рдлреНрд░реЗрдо рд╣рдореЗрд╢рд╛ рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ рд░рд╣реЗрдЧрд╛ред рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 60.0/рдЬреАрдПрдо 4.3 рдореЗрдВ, рд╡реЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдлреНрд░реЗрдо рд▓реЛрдб рдкрд░ "рдмреНрд▓рд┐рдк" рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред

рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 57 рдореЗрдВ рд╕рдВрдХреНрд░рдордг рдореЗрдВ рдореЛрдЬрд╝рд┐рд▓рд╛ рдиреЗ _something_ рдХреЛ рдмрджрд▓ рджрд┐рдпрд╛ред рдЬреЛ рдХреБрдЫ рднреА рдерд╛ рд╡рд╣ рдмрджрд▓ рдЧрдпрд╛ (рдпрд╛ рдЯреВрдЯ рдЧрдпрд╛) рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдлреНрд░реЗрдореНрд╕ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рдерд╛ред рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдХрд┐рд╕реА рдЕрдиреНрдп рдореБрджреНрджреЗ рдореЗрдВ рдмрд╛рдд рдХреА рдЧрдИ рдереАред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдлреНрд░реЗрдо рд▓реЛрдб (57+) рдкрд░ рдирд╣реАрдВ рдЪрд▓реЗрдВрдЧреАред

рдЕрдВрддрддрдГ userScript рдпрд╛ contentScript API рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рд╕реЗ рдпрд╣ рд╕рдм рд╣рд▓ рд╣реЛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

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

рдЗрд╕ рд╕рдордп рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдЕрдкрдирд╛ рд╕рдорд╛рдзрд╛рди рд╣реИ Greasemonkey рдХреЛ рдЯреЙрдк рдлреНрд░реЗрдо рдореЗрдВ рдФрд░ Violentmonkey рдХреЛ рдЪрд╛рдЗрд▓реНрдб рдлреНрд░реЗрдо рдореЗрдВ рдЪрд▓рд╛рдирд╛ред рдореИрдВ рдЯреИрдореНрдкрд░реНрдореЛрдирдХреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдПрдХ рдЕрд╕реНрдкрд╖реНрдЯ рд╣реЛрдордореЗрдб рд▓рд╛рдЗрд╕реЗрдВрд╕ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░ рднреА рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдирд╣реАрдВ рднреАред

рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рд╡реАрдПрдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкреЗрдЬ рдХреЗ рдЕрдкрдиреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЫреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред рдпрд╣ рд╕реБрд░рдХреНрд╖рд┐рдд рд╕рдордХрдХреНрд╖ рдХреЗ рдмрд┐рдирд╛ рдЬреАрдПрдо рдХреЗ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд┐рдиреНрдбреЛ рдХреА рддрд░рд╣ рд╣реИред рд╕рдмрд╕реЗ рдпрд╛рджрдЧрд╛рд░ рд╕рдордпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдореИрдВ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбрд┐рдмрдЧ рдХрд░ рд░рд╣рд╛ рдерд╛, рдЬрд╣рд╛рдВ рдкреГрд╖реНрда рд╕рд╛рдордЧреНрд░реА рдиреЗ Array.prototype рдкрд░ рдПрдХ 'toJSON ()" рд╡рд┐рдзрд┐ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдерд╛, рдЬрд┐рд╕рд╕реЗ JSON.stringify () рдореЗрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЕрдВрджрд░ рдЕрдорд╛рдиреНрдп JSON рдХреЛ рдереВрдХ рджреЗрддрд╛ рдерд╛ред рдореБрдЭреЗ рдХрд░рдирд╛ рдкрдбрд╝рд╛ рд░рдХреНрд╖рд╛рддреНрдордХ рд░реВрдк рд╕реЗ рдЬрд╛рд▓ рдФрд░ рдЗрдиреНрд╣реЗрдВ рдареАрдХ рдХрд░реЗрдВ рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдЙрдиреНрд╣реЗрдВ рдкрд╛рдпрд╛ рд╣реИред

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

@RyanHanekamp рдЯрд┐рдк рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рд╢рд╛рдпрдж рдореИрдВ рдХреБрдЫ рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд╛рдпрд▓реЗрдВрдЯрдореЛрдирдХреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реВрдВрдЧрд╛ред

рдХреНрдпрд╛ рд╣рд┐рдВрд╕рдХ рдХреЗ рдкрд╛рд╕ рднреА рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ GM_getValue рдЬреИрд╕рд╛ рдХреБрдЫ рд╣реИ? рдпрд╣ рдПрдХ рдФрд░ рд╕рдорд╕реНрдпрд╛рдЧреНрд░рд╕реНрдд рдореБрджреНрджрд╛ рд╣реИ рдЬреЛ рдирдП Greasemonkey рдореЗрдВ рдПрдХ рдЯрди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИред рдореИрдВ рдЕрднреА рднреА Greasemonkey рдкрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рднрд░реЛрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░рдгреЛрдВ рд╕реЗ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕реЗ рдирд╣реАрдВ рдЫреЛрдбрд╝реВрдВрдЧрд╛ред

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

myObject= document.createElement('object');
myObject.setAttribute('id', 'myObject'); 
document.body.appendChild(myObject);
myObject.setAttribute('src', 'https://example.com');

рдлрд┐рд░, рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реЛрдб рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж:
document.querySelector('#myObject').contentDocument.defaultView.document.querySelectorAll('someElementInsideObjectPage')
рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╡рд╕реНрддреБ рдореБрдЦреНрдп рдкреГрд╖реНрда рдХреЗ рд╕рдорд╛рди рд╣реЛрд╕реНрдЯ рдкрд░ рд╣реЛрддреА рд╣реИред рдЖрдк рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реЗ рдФрд░ рдХреЛ ( ... contentDocument.defaultView.postMessage('hello, object') ) рд╕рдВрджреЗрд╢ рднреА рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред

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

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

рд╕рд╛рде рд╣реА, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рдорд╛рди рдореВрд▓ рдлреНрд░реЗрдо/рдЖрдИрдлреНрд░реЗрдо рд╣реИ, рддреЛ рдЖрдк рд╕реАрдзреЗ рдЙрдирдХреА рд╕рд╛рдордЧреНрд░реА рддрдХ рднреА рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВред рдХрдард┐рди рд╣рд┐рд╕реНрд╕рд╛ рдХреНрд░реЙрд╕-рдУрд░рд┐рдЬрд┐рдирд▓ рд╣реИ, рдпрд╣реА рд╡рдЬрд╣ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдлреНрд░реЗрдо рдХреЗ рдЕрдВрджрд░ рдпреВрдЬрд░рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдпрд╣ рдкреИрд░реЗрдВрдЯ рд╡рд┐рдВрдбреЛ рдкрд░ рд╡рд╛рдкрд╕ рдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ window.postMessage() рдЪреИрдирд▓ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред

@RyanHanekamp рдпрд╣ рдЬрд╛рдирдХрд░ рдЕрдЪреНрдЫрд╛ рд▓рдЧрд╛ рдХрд┐ рд╣рд┐рдВрд╕рдХ рдмрдВрджрд░ рдХреЗ рдкрд╛рд╕ рдЕрднреА рднреА рдкреБрд░рд╛рдирд╛, рд╕рд░рд▓ GM_* рд╣реИред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдХрд┐ рдирдП рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдЕрд▓рд╛рд╡рд╛, Greasemonkey рдиреЗ рдкреБрд░рд╛рдиреЗ, рддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ GM_getValue рдХреЛ рдкрд┐рдЫрдбрд╝реЗ рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рд░рдЦрд╛ рдерд╛ред рдореИрдВ рдПрдХ рдирдИ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдирдП рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдирд╣реАрдВ рд╣реВрдВ рдФрд░ рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдпрд╛ рдирд╣реАрдВред рдФрд░ рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкреБрд░рд╛рдиреЗ GM_getValue рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЛ 2000 рд▓рд╛рдЗрдиреЛрдВ рдХреА рдПрдХ рдкреНрд░рд╛рдЪреАрди рд▓рд┐рдкрд┐ рдореЗрдВ рдкреБрди: рд╕рдХреНрд░рд┐рдп рдХрд░рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рд╣реВрдВ рдЬреЛ рдореБрдЭреЗ рдСрдирд▓рд╛рдЗрди рдорд┐рд▓реА ... рдЗрддрдиреА рд╕рд╛рд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрдм рдЯреВрдЯ рдЧрдИ рд╣реИрдВред

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

рдУрд╣, рдЖрдк рд╕реАрдзреЗ рд╕рдорд╛рди-рдореВрд▓ рдЖрдИрдлреНрд░реЗрдо (рдкреЛрд╕реНрдЯрдореИрд╕реЗрдЬ рдЖрджрд┐ рдХреЗ рдмрд┐рдирд╛) рдХреА рд╕рд╛рдордЧреНрд░реА рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддреЗ рд╣реИрдВ? рдореБрдЭреЗ рдпрд╛рдж рд╣реИ рдХрд┐ рд░рд╛рд╕реНрддрд╛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рдмрд╣реБрдд рд╕рдордп рд▓рдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрднрд╡ рдирд╣реАрдВ рд▓рдЧ рд░рд╣рд╛ рдерд╛ред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдкреЛрд╕реНрдЯрдореИрд╕реЗрдЬ рдкрд░ рднреА рд╕реНрд╡рд┐рдЪ рдХрд┐рдпрд╛ред

рдлреНрд░реЗрдореНрд╕ рдФрд░ рдЖрдИрдлреНрд░реЗрдо рдореЗрдВ рдПрдХ рдХрдВрдЯреЗрдВрдЯрд╡рд┐рдВрдбреЛ рдкреНрд░реЙрдкрд░реНрдЯреА рд╣реЛрддреА рд╣реИ рдЬреЛ рд╡рд┐рдВрдбреЛ рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрддреА рд╣реИред рджреЛрдиреЛрдВ рдХреЗ рдкрд╛рд╕ рдбреАрдУрдПрдо рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рд╕рдВрдкрддреНрддрд┐ рд╣реИред

iframes (рдЙрд╕реА рдореВрд▓ рдкрд░) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдХрдард┐рди рд╣рд┐рд╕реНрд╕рд╛ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХрдм рд▓реЛрдб рд╣реЛрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдРрд╕рд╛ рд╣реЛрдиреЗ рддрдХ рдЖрдк рд╕реНрдХреНрд╡рд╛рдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдСрдирд▓реЛрдб рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдПрдХ DOMFrameContentLoaded рдИрд╡реЗрдВрдЯ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд▓реЛрдб рдХрд┐рдП рдЧрдП рдкреНрд░рддреНрдпреЗрдХ рдлрд╝реНрд░реЗрдо рдХреЗ рд▓рд┐рдП рд╕рдХреНрд░рд┐рдп рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдкреЛрддреЗ/рдорд╣рд╛рди-рдкреЛрддреЗ рдЖрджрд┐ рдлрд╝реНрд░реЗрдо рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЗрд╡реЗрдВрдЯ.рдЯрд╛рд░рдЧреЗрдЯ рдкреНрд░реЙрдкрд░реНрдЯреА рдХреЗ рд╕рд╛рде рдореВрд▓ рдлреНрд░реЗрдо/iframe рддрддреНрд╡ рд╕реЗ рдорд┐рд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рдлреНрд░реЗрдо/рдЖрдИрдлреНрд░реЗрдо рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рдпрд╛ рддреЛ рдкреЛрд╕реНрдЯрдореИрд╕реЗрдЬ рдХреЗ рд╕рд╛рде рдорд╛рддрд╛-рдкрд┐рддрд╛ рд╕реЗ рдмрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рд╡рд┐рдВрдбреЛ рдкрд░ рд╡реИрд╢реНрд╡рд┐рдХ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдкреИрд░реЗрдВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯред

рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмреЛрд▓рддреЗ рд╣реБрдП... рдпрд╣ рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрднрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рд╣реИред рдпрджрд┐ рдХрд┐рд╕реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХреНрд░реЙрд╕-рдбреЛрдореЗрди рд╡рд┐рдВрдбреЛ рд╕рдВрджрд░реНрдн рдореЗрдВ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреАрдПрдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХреЛрдб рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ рдпрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреЛрдбрд┐рдВрдЧ рдХрд░реЗрдЧрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдкреВрд░рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдкреИрдЯрд░реНрди рдХреЛ DOMFrameContentLoaded рдХреЛ рд╕реБрдирд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ event.target рдкрд╣рд▓реА рдкреАрдврд╝реА рдХрд╛ рд╣реИ, рдФрд░ рдпрджрд┐ рдРрд╕рд╛ рд╣реИ рддреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░реЗрдВред (рдпрд╣ рдорд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдкрд╣рд▓реА рдкреАрдврд╝реА рдХреЗ рдлреНрд░реЗрдо рдХреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреВрд╕рд░реА рдкреАрдврд╝реА рдХреЗ рдлреНрд░реЗрдо рдХреЗ рд▓рд┐рдП DOMContentLoaded рдХреЛ рд╕реБрди рд╕рдХрддреА рд╣реИ, рдФрд░ рдЗрд╕ рддрд░рд╣ рдПрдХ рдкреВрд░реА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреА рд╣реИред) @ рд░рди-рдПрдЯ рдбреЛрдо-рд╕реНрдЯрд╛рд░реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдФрд░ рд╕рдордп рдХреЗ рдореБрджреНрджреЗ рднреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рд╢рд╛рдпрдж рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдирдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

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

рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ Greasemonkey рдФрд░ Violentmonkey рдХреЗ рдмреАрдЪ рдХрд╛ рдЕрдВрддрд░ рдпрд╣ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ Violentmonkey рдХреЛ рд╕рд╛рдордЧреНрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рд╕рднреА_рдлреНрд░реЗрдо рдХреЗ рд╕рд╛рде рд╕рддреНрдп рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЬрдмрдХрд┐ Greasemonkey рдХреЗ рдкрд╛рд╕ рдХреЛрдИ рдЗрдВрд╕реНрдЯрд╛рд▓-рдЯрд╛рдЗрдо рд╕рд╛рдордЧреНрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд╣реАрдВ рд╣реИ рдФрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдкреГрд╖реНрдарднреВрдорд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рд╕рдВрджрд┐рдЧреНрдз рдХреНрд╖рдорддрд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдЬрдм рдПрдХ рдЯреИрдм рдХрд╛ рдлреНрд░реЗрдо рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред (рдФрд░ Violentmonkey рд╕реАрдПрд╕рдкреА рдкреГрд╖реНрдареЛрдВ рдкрд░ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрд╕реНрдерд╛рдпреА рд░реВрдк рд╕реЗ рдЕрдзрд┐рдХ рд╕реБрд░рдХреНрд╖рд┐рдд tabs.executeScript() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдПрд╕рд╕реАрдЖрд░рдЖрдИрдкреАрдЯреА рдЯреИрдЧ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рддрд╛ рд╣реИред)

All_frames рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдерд┐рд░ рд╕рд╛рдордЧреНрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд░рдЦреЗрдВ, run_at start, рдкреНрд░рд╛рд░рдВрдн / рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреЗ рд▓рд┐рдП рдкреГрд╖реНрдарднреВрдорд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред DOMContentLoaded / document.Idle рдкреНрд░рддреНрдпреЗрдХ run_at рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдЖрдк рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреЗ рд╣реИрдВред рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рджреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧреИрд░-рддреБрдЪреНрдЫ рд▓реЗрдХрд┐рди рдкреНрд░рдмрдВрдзрдиреАрдп рдорд╛рддреНрд░рд╛ рдореЗрдВ рдХрд╛рдоред рдореИрдВ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдареАрдХ рдХрд░ рджреВрдВрдЧрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдЖрдкрдХреА рджреЗрд╡ рдирд┐рд░реНрднрд░рддрд╛рдУрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдореЗрдВ рдХреЛрдИ рджрд┐рд▓рдЪрд╕реНрдкреА рдирд╣реАрдВ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдЖрдЙрдЯрдкреБрдЯ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИред

@RyanHanekamp

рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛ рд╕реАрдзреЗ рдХреЛрдбрд┐рдВрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝реЗ рд╣реИрдВред рдЬреЛ рд╕рднреА рдлреНрд░реЗрдо рдореЗрдВ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ!

рдХреНрдпрд╛ рдЖрдк рдЕрдкрдирд╛ рд╡рд╣ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЛрдб рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ?

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

рдореИрдВрдиреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдЯрд┐рдХ рд░реВрдк рд╕реЗ рдирд┐рд░реНрдорд┐рдд рдлреНрд░реЗрдо/рд╡рд┐рдВрдбреЛ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рд░рди_рдПрдЯ рд╕реЗрдЯрд┐рдВрдЧ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдирд┐рд░реНрдорд╛рдг рдкрд░ рдЪрд▓реЗрдВрдЧреЗ, рдХреНрдпреЛрдВрдХрд┐ рдРрд╕реЗ рдлреНрд░реЗрдо рд╢реБрд░реВ рдореЗрдВ рдЦрд╛рд▓реА рдФрд░ рдлрд┐рд░ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ - рдЗрдВрдЬрди рд╢рд╛рдпрдж рдХреЗрд╡рд▓ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдирд┐рд░реНрдорд╛рдг рдХреЛ рджреЗрдЦреЗрдЧрд╛ред рдореИрдВрдиреЗ рдбреЗрдЯрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рднреА рдирд╣реАрдВ рдХрд┐рдпрд╛: рдпреВрдЖрд░рдПрд▓, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рд╕реНрдкрд╖реНрдЯ рдорд┐рд▓рд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ - рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ all_urls рдЙрдиреНрд╣реЗрдВ рдХрд╡рд░ рдХрд░рддрд╛ рд╣реИ, рдпрд╛ рд╕рд┐рд░реНрдл http/httpsред

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

Greasemonkey рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдореЗрдирд┐рдлреЗрд╕реНрдЯ рдореЗрдВ рд╕реНрдерд┐рд░ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╕рд╛рдордЧреНрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ tabs.executeScript рддрдХ рд╕реАрдзреА рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдореИрдВ рд╢рд╛рдпрдж рд╣реА рдЗрд╕ рдкрд░ рдПрдХ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдХреЗрд╡рд▓ рдХреБрдЫ рджрд┐рдиреЛрдВ рдореЗрдВ рд╣реВрдВ), рд▓реЗрдХрд┐рди рдПрдХ рд╕реНрдерд┐рд░ рд╕рд╛рдордЧреНрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддреА рд╣реИ рдкреГрд╖реНрдарднреВрдорд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдпрд╣ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрджреЗрд╢ рджреЗрддреА рд╣реИ рдХрд┐ рдлреНрд░реЗрдо рдЖрдИрдбреА рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдХрд┐рд╕ рдпреВрдЖрд░рдПрд▓ рдкрд░ред webRequest рдпрд╛ webNavigation рдореЗрдВ рд╕рд╣реА рдШрдЯрдирд╛ рдХреЛ рд╣реБрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдереНрд░реЗрдб рдкрд░ рдЙрд▓реНрд▓рд┐рдЦрд┐рдд рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЛ рдореИрдВ рдХреИрд╕реЗ рд╕рдордЭрддрд╛ рд╣реВрдВ, рдпрд╣ рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реЛрдЧрд╛ред рд╕реНрдереИрддрд┐рдХ рд╕рд╛рдордЧреНрд░реА_рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ рд╕рдВрдХреЗрдд рд╡рд╣ рдШрдЯрдирд╛ рдмрди рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо Greasemonkey рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓реЛрдбрд░ / рдЗрдВрдЬреЗрдХреНрдЯрд░ рдХреЛ рдЯреНрд░рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВред

рдЙрди рдЙрдкрдпреЛрдХреНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рджреЗрд░реА рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬрд┐рдиреНрд╣реЗрдВ document_start рдкрд░ рдХрдбрд╝рд╛рдИ рд╕реЗ run_at рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдХреЙрд▓ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рд╣реИ, рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рддрдХ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЖрдЧреЗ рдмрдврд╝ рдЪреБрдХрд╛ рд╣реЛрдЧрд╛ред рд╕рдВрднрд╡рддрдГ рдпрд╣реА рдХрд╛рд░рдг рд╣реИ рдХрд┐ Violentmonkey tabs.executeScript рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдЕрд╕реНрдерд╛рдпреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреИрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреИрдЧ рдЗрдВрдЬреЗрдХреНрд╢рди рд╕реАрдзреЗ content_script рд╕реЗ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдореБрдЭреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХреА рд╕реНрдерд┐рддрд┐ рдХреА рдЕрдирд┐рд╢реНрдЪрд┐рддрддрд╛ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реЛрдирд╛ рдкрдбрд╝реЗрдЧрд╛ run_at document_start рдкрд░реЗрд╢рд╛рдиреА рдХреЗ рд▓рд┐рдП, рд▓реЗрдХрд┐рди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдмреЗрд╣рддрд░ рдирд╣реАрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИред

Greasemonkey ... рдкреГрд╖реНрдарднреВрдорд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╕рдВрджреЗрд╢ [рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реНрдерд┐рд░ рд╕рд╛рдордЧреНрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ] рдпрд╣ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдлреНрд░реЗрдо рдЖрдИрдбреА рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдХрд┐рд╕ рдпреВрдЖрд░рдПрд▓ рдкрд░ ...

рдЗрд╕реА рдХреЛ рд╣рдо рд╣реИ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП .user.js рдиреЗрд╡рд┐рдЧреЗрд╢рдиред рдПрдХ рд╕реНрдкрд╖реНрдЯ рдФрд░ рдЕрдЪреНрдЫреЗ рд╕рдорд╛рдзрд╛рди рдХреА рддрд░рд╣ рд▓рдЧрддрд╛ рд╣реИ: рд╕рд╛рдордЧреНрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдХрд░ рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ!

рд▓реЗрдХрд┐рди рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕рд╛рдордЧреНрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рднреА рд╕реАрдПрд╕рдкреА (#2631 рдФрд░ http://bugzil.la/1267027 рдФрд░ http://bugzil.la/1411641) рджреНрд╡рд╛рд░рд╛ рддреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдореИрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕реАрдПрд╕рдкреА рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 60.0.1 рдФрд░ 52.8.1ESR рдкрд░ рд╕реАрдзреЗ content_script рдХреЗ рднреАрддрд░ рд╕реЗ рдлрдВрдХреНрд╢рди () рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рд╕рд╣рд┐рдд рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдкреНрд▓рдЧрдЗрди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ:

рдлреНрд░реЗрдо-src рдбреЗрдЯрд╛ :; рд╡рд╕реНрддреБ-рд╕реНрд░реЛрдд 'рдХреЛрдИ рдирд╣реАрдВ'; рд╕реНрдХреНрд░рд┐рдкреНрдЯ-рд╕реНрд░реЛрдд 'рдХреЛрдИ рдирд╣реАрдВ'; рд╢реИрд▓реА-рд╕реНрд░реЛрдд 'рдЕрд╕реБрд░рдХреНрд╖рд┐рдд-рдЗрдирд▓рд╛рдЗрди' рдбреЗрдЯрд╛ :; рдХрдиреЗрдХреНрдЯ-src 'рдХреЛрдИ рдирд╣реАрдВ'; рдореАрдбрд┐рдпрд╛-рд╕реНрд░реЛрдд 'рдХреЛрдИ рдирд╣реАрдВ';

2631 рдХреЛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░ рдХреНрдпреЛрдВрдХрд┐ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдиреЗ рдЗрд╕рдХреЗ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдмрдЧ рдХреЛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдкрд╣рд▓рд╛ рдмрдЧрдЬрд╝рд┐рд▓рд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЯреИрдЧ (рд╡рд╛рдпрд▓реЗрдВрдЯрдореЛрдирдХреА рд╡рд┐рдзрд┐) рдХреЛ рдЗрдВрдЬреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╣реИ, рди рдХрд┐ рд╕рд╛рдордЧреНрд░реА_рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛред рджреВрд╕рд░рд╛ рд╕реАрдПрд╕рдкреА рдХреЗ рд▓рд┐рдП рд╕реИрдВрдбрдмреЙрдХреНрд╕ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рд╣реИ, рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдбреЛрдореЗрди рдХреЛ рдХрднреА рднреА рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдПрдХ рдбреЛрдореЗрди рдореИрдЪ рдХреЛ рд╕реНрд╡рдпрдВ рддрдХ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдереЛрдбрд╝реЗ NaN рдХреА рддрд░рд╣! == NaNред

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

рд╣реИрд▓реЛ, рдХреНрдпрд╛ рдпрд╣ рдЕрдм рд╣рд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИ?

рдореИрдВ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдирд╣реАрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрд╛ рдЬрд┐рд╕реЗ рдореИрдВрдиреЗ рдЯреИрдореНрдкрд░рдореЛрдирдХреА рдХреЗ рд▓рд┐рдП рдЧреНрд░реАрд╕рдореЛрдирдХреА рдХреЗ рд╕рд╛рде рдЖрдИрдлреНрд░реЗрдо рдкрд░ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рдерд╛ред

рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдХреЛрдб рд╣рдорд╛рд░реА рдУрд░ рд╕реЗ рдирд╣реАрдВ рдмрджрд▓рд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдЬрдм рддрдХ рдореЛрдЬрд╝рд┐рд▓рд╛ рдиреЗ рдЕрдкрдиреЗ рдЕрдВрдд рдореЗрдВ рдХреБрдЫ рдирд╣реАрдВ рдмрджрд▓рд╛ рд╣реИ рддрдм рднреА рдпрд╣ рдЯреВрдЯрд╛ рд╣реБрдЖ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐ #2663 рдЗрд╕реЗ рд╣рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡рд╛рдпрд▓реЗрдВрдЯрдореЛрдирдХреА рдФрд░ рдЯреИрдореНрдкрд░рдореЛрдирдХреА рдПрдореНрдмреЗрдбреЗрдб рдлреНрд░реЗрдо рдХреЗ рдЕрдВрджрд░ рдареАрдХ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

рдХрдо рд╕реЗ рдХрдо рдореЗрд░реЗ рд▓рд┐рдП, рдЯреИрдореНрдкрд░реНрдореЛрдирдХреА рдХреЛ рдХреНрд░реЛрдо рдореЗрдВ рдЖрдИрдлреНрд░реЗрдо рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИред

рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡рд╛рдпрд▓реЗрдВрдЯрдореЛрдирдХреА рдФрд░ рдЯреИрдореНрдкрд░рдореЛрдирдХреА рдПрдореНрдмреЗрдбреЗрдб рдлреНрд░реЗрдо рдХреЗ рдЕрдВрджрд░ рдареАрдХ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

рдХрдо рд╕реЗ рдХрдо рдореЗрд░реЗ рд▓рд┐рдП, рдЯреИрдореНрдкрд░реНрдореЛрдирдХреА рдХреЛ рдХреНрд░реЛрдо рдореЗрдВ рдЖрдИрдлреНрд░реЗрдо рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИред

рд▓реЗрдХрд┐рди рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рд╡рд╛рдпрд▓реЗрдВрдЯрдореЛрдирдХреА рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рддреЛ рдореБрдЭреЗ рдЖрд╢реНрдЪрд░реНрдп рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╣рд╛рдВ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

рдореИрдВрдиреЗ рдЕрднреА рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдкреБрд░рд╛рдиреА рд╕рд┐рдВрдХ GM_GetValue рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрднреА рднреА Violentmonkey рдореЗрдВ рднреА рдареАрдХ рдХрд╛рдо рдХрд░рддреА рд╣реИред рд╡реЛ рдХреИрд╕реЗ рд╕рдВрднрд╡ рд╣реИ? рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдерд╛ рдХрд┐ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдиреЗ рдПрд╕рд┐рдВрдХреНрд╕ GM.GetValue рдХреЛ рдордЬрдмреВрд░ рдХрд░ рджрд┐рдпрд╛ рдерд╛? рдореИрдВ рдЕрдм рдмрд╣реБрдд рдЙрд▓рдЭрди рдореЗрдВ рд╣реВрдБ: рд╕рдВрднрд╡рддрдГ рд╡рд╛рдпрд▓реЗрдВрдЯрдореЛрдирдХреА рдХреЛ рд╕рд┐рдВрдХ рдФрд░ рдЕрдиреНрдп рд╕рд╛рдорд╛рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдФрд░ рдмрд▓рд┐рджрд╛рди рдХрд░рдирд╛ рдкрдбрд╝рд╛?

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

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

TM рдФрд░ VM рдиреЗ рдореВрд▓ Greasemonkey API рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдХреЛ рди рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрд░реЛрдХреНрдд рдХреЗ рд╕рдорд╛рди рдХреБрдЫ рдХрд░рдирд╛ рдЪреБрдирд╛, рдЬрдм рдЙрди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдмрдВрдзрдХреЛрдВ рдХреЛ рдХреНрд░реЛрдо рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рд╕рдорд╛рди рдкреНрд░рддрд┐рдмрдВрдз wrt рд╣реИрдВред рд╡рд┐рд╕реНрддрд╛рд░ рднрдВрдбрд╛рд░рдг, рдЖрджрд┐ рдХреЗ рд╕рд╛рде рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╕рдВрдЪрд╛рд░ред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╡реЗ рдЗрд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреНрд░реЛрдо рдХреЗ рд▓рд┐рдП рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдХреЗ рд▓рд┐рдП рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рдкрд░ рдЙрдирдХреЗ рдмрджрд▓рдиреЗ рдХрд╛ рдХреЛрдИ рдХрд╛рд░рдг рдирд╣реАрдВ рдерд╛ред

рдЗрд╕рд▓рд┐рдП, WebExtensions рдХреЗ FF57 рдХрдЯ-рдУрд╡рд░ рдиреЗ GM рдХреЗ рдкреБрдирд░реНрд▓реЗрдЦрди рдХреЛ рдмрд╛рдзреНрдп рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдиреЗ GM.getValue , GM.setValue рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ API рдХреЛ рдЕрдкрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдирд╣реАрдВ рдХрд┐рдпрд╛ред WebExtensions рдиреЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдПрд╕рд┐рдВрдХ-рдЖрдзрд╛рд░рд┐рдд рдПрдкреАрдЖрдИ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдиреЗ рдЗрд╕реЗ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ред

рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╕рдВрдж, рдФрд░ рд╕рдВрдЧрддрддрд╛ рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреЗ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдк, рджреБрд░реНрднрд╛рдЧреНрдпрдкреВрд░реНрдг рдереЗ/рд╣реИрдВред рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде рдкрд╢реНрдЪрдЧрд╛рдореА рд╕рдВрдЧрддрддрд╛ рдХреА рдХрдореА рдЬреЛ GM3 рдореЗрдВ рдареАрдХ рдЪрд▓ рд░рд╣реА рдереА рдФрд░/рдпрд╛ TM рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧ GM4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдиреЗ рдХрд╛ рд╡рд┐рдХрд▓реНрдк рдЪреБрдирддреЗ рд╣реИрдВред рдореЗрд░рд╛ рдЕрдиреБрднрд╡ рдпрд╣ рд╣реИ рдХрд┐ рдореЗрд░реЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА 30 рд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рд╕рднреА GM3 рдореЗрдВ рдареАрдХ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВ, GM4 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВ (рдпрд╛ рдХрдо рд╕реЗ рдХрдо GM4 рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦреЗ рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВ)ред рдЕрднреА рднреА 28 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдореИрдВ рджреИрдирд┐рдХ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ GM3 рдХреЗ рддрд╣рдд рдареАрдХ рдЪрд▓рддреА рд╣реИрдВ рдЬреЛ GM4 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рд╣реИрдВред

рдореИрдВрдиреЗ рд╕реНрдЯреИрдХ рдУрд╡рд░рдлреНрд▓реЛ рдкрд░ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдПрдХ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдПрдХ iframe рдкрд░ Greasemonkey/тАМTampermonkey/userscript рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдЙрддреНрддрд░ рдХреЗ рд░реВрдк рдореЗрдВред рдореВрд▓ рд░реВрдк рд╕реЗ, рдореИрдВ рдлреНрд░реЗрдо рд▓реЛрдб рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдлрд┐рд░ рдореИрдВ window.frames рд╕рд░рдгреА рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рдкреНрд░рддреНрдпреЗрдХ рдлреНрд░реЗрдо рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рдПрдХ рдХрд╕реНрдЯрдо рдорд╛рд░реНрдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рджрд░реНрд╢рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдлреНрд░реЗрдо рджреЗрдЦрд╛ рд╣реИред

рд╢рд╛рдпрдж Greasemonkey рдПрдХ рд╕рдорд╛рди рддрд░реАрдХреЗ рд╕реЗ рд╕рдорд╛рдзрд╛рди рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ?

рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдЕрдЧрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ GM.waitFor(css_selector, action_function) рдЬреИрд╕реЗ WaitForKeyElements() рднреА рд╣реЛ , рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рддрд░рдл рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

eradrix picture eradrix  ┬╖  14рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

jesus2099 picture jesus2099  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

darkred picture darkred  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

Powersource picture Powersource  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ssokolow picture ssokolow  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ