Greasemonkey 4 рдЖрдЬ рддрдХ рдХреЗрд╡рд▓ рд╢реАрд░реНрд╖ рд╕реНрддрд░ рдкрд░ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ @noframes
рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИред
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
рдХреБрдЫ рдФрд░ рд╡рд┐рд╡рд░рдг: рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдореЗрд░реА рд▓рд┐рдкрд┐рдпреЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдлреНрд░реЗрдо рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рдкреГрд╖реНрда рд╕реНрдХреНрд░рд┐рдкреНрдЯ рджреНрд╡рд╛рд░рд╛ рджреГрд╢реНрдп рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред
рдХрднреА-рдХрднреА, рдореЗрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рдордХрд╛рд▓рд┐рдХ рднрд╛рдЧ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдкреГрд╖реНрда рдЧрддрд┐рд╡рд┐рдзрд┐ рджреНрд╡рд╛рд░рд╛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рднрд╛рдЧ рдЕрдЪрд╛рдирдХ рдмрд╛рдзрд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ...
рдЙрдореНрдореАрдж рд╣реИ рдХреА рд╡реЛ рдорджрдж рдХрд░рджреЗ!
рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рд╣реИ?
рдЗрд╕ рд╕реВрддреНрд░ рдХрд╛ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╕рд╛рд░рд╛рдВрд╢ (рдореБрджреНрджрд╛):
рдореИрдВ рдЗрди рдЗрдВрдЯрд░реНрдирд▓ рдореЗрдВ рдЗрддрдирд╛ рдирд╣реАрдВ рд╣реВрдВ, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдХреЛрдИ рд╣реИ ...
рдПрдХ рдЕрд╕реНрдерд╛рдпреА рд╕реБрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдПрдореНрдмреЗрдб ( рдЙрджрд╛рд╣рд░рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ ) рдХреЗ @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 рдХрд╛ рдлрд┐рдХреНрд╕ рдЕрднреА рддрдХ рдореБрдЦреНрдп рд╢рд╛рдЦрд╛ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ? рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдореИрдВ рдЙрд╕рдХрд╛ рдХрд╛рдВрдЯрд╛ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?
git clone -b use-on-response-started-for-execute --single-branch https://github.com/Sxderp/greasemonkey.git
[1]./package.sh
рдЪрд▓рд╛рдПрдБ, рдпрд╣ рдПрдХ XPI рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдЧрд╛редabout:config
рдкрд░ рдЬрд╛рдПрдВ рдФрд░ xpinstall.signatures.required
рд╕реЗ false
about:addons
рдкрд░ рдЬрд╛рдПрдВ, рдХреЙрдЧ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдлрд┐рд░ рдлрд╝рд╛рдЗрд▓ рд╕реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ рдЪреБрдиреЗрдВред[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 рд╕рд╣рд┐рдд)
рдФрд░ рдпрд╣ рд╡рд╣реА рдирд╣реАрдВ рд╣реИ.... рдпрд╣ рдмрдЧ рдпрд╛ рд╡рд┐рд░реЛрдз рдкреИрджрд╛ рдХрд░рддрд╛ рд╣реИред
рдХреНрдпрд╛ рдЖрдк рднреА рдЬрд╛рдирддреЗ рд╣реИрдВ рдпрд╣ рд╕рдорд╕реНрдпрд╛?
рдореИрдВ рдЙрди рд╡рд┐рд╢рд┐рд╖реНрдЯ рдпреВрдЖрд░рдПрд▓ рдХреЛ рджреЗрдиреЗ рдореЗрдВ рд╕рдВрдХреЛрдЪ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬрд┐рдирдХрд╛ рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдореЗрд░реЗ рдирд┐рдпрдВрддреНрд░рдг рд╕реЗ рдмрд╛рд╣рд░ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рд╛рде рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕реБрд╕рдВрдЧрдд рд▓реЗрдХрд┐рди рдЕрдЬреАрдм рд╡реНрдпрд╡рд╣рд╛рд░ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред
рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╕рд╛рдЗрдЯ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдореБрдЭреЗ рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рд╢реБрд░реВ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдбреЛрдореЗрди рдкрд░ рдкрдВрдХреНрддрд┐рдпреЛрдВ = "100%, 0" (рд╕реНрдХреНрд░реАрди рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдлреНрд░реЗрдо) рдХреЗ рд╕рд╛рде рдПрдХ рдлреНрд░реЗрдорд╕реЗрдЯ/рдлреНрд░реЗрдо рд▓реЛрдб рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдлрд╝реНрд░реЗрдо рдореЗрдВ рдордзреНрдпрд╡рд░реНрддреА рдлрд╝реНрд░реЗрдорд╕реЗрдЯ/рдлрд╝реНрд░реЗрдо рдХреЗ рдбреЛрдореЗрди рдХреЗ рднреАрддрд░ рдПрдХ рдлрд╝реНрд░реЗрдорд╕реЗрдЯ / 3 рдлрд╝реНрд░реЗрдо рд╣реЛрддреЗ рд╣реИрдВред
рдХреБрдЫ 1+3 рдЪрд╛рдЗрд▓реНрдб рдлреНрд░реЗрдо рдХреА рдЬреАрдПрдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЕрд╕реНрддрд┐рддреНрд╡ рдореЗрдВ "рдмреНрд▓рд┐рдк" рд╣реЛ рдЬрд╛рдПрдЧреА, рдлрд┐рд░ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрдХреНрд░ рдХреЗ рдмрд╛рдж рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рдПрдЧреА - рд╡реЗ рдХрд┐рд╕реА рднреА рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдСрдкрд░реЗрд╢рди рдХреЗ рдмрд╛рдж рдХрднреА рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдЖрддреА рд╣реИрдВред рдпрд╣ рдЗрд╕ рдзрд╛рдЧреЗ рдкрд░ рд╡рд░реНрдгрд┐рдд рдХреБрдЫ рд╡реНрдпрд╡рд╣рд╛рд░реЛрдВ рдкрд░ рдлрд┐рдЯ рдмреИрдарддрд╛ рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдХреМрди рд╕реЗ "рдмреНрд▓рд┐рдк" рдФрд░ рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдмреНрд░рд╛рдЙрдЬрд╝рд░/рдЬреАрдПрдо рд╕рдВрд╕реНрдХрд░рдг рджреНрд╡рд╛рд░рд╛ рднрд┐рдиреНрди рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдирд╣реАрдВ рд╣реИ; рдкреИрдЯрд░реНрди рдЕрдЬреАрдм рд╣реИрдВ рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рд╕реЗрдЯрдЕрдк рдХреЗ рд▓рд┐рдП 100% рджреЛрд╣рд░рд╛рдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВред
рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, "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 'рдХреЛрдИ рдирд╣реАрдВ'; рдореАрдбрд┐рдпрд╛-рд╕реНрд░реЛрдд 'рдХреЛрдИ рдирд╣реАрдВ';
рдЬрдм рдпрд╣ рдкрд╣рд▓реА рдмрд╛рд░ рдХрдИ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ рджрд╛рдпрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рддреЛ рд╣рдордиреЗ рдЪреАрдЬреЛрдВ рдХреЛ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рдХрд┐рдпрд╛ рдерд╛ред рдЖрдЬ рд╣рдо рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП 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() рднреА рд╣реЛ , рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рддрд░рдл рд╣реИред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдирдорд╕реНрддреЗ,
рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдЬрд╛ рд░рд╣реЗ рд╣реИрдВ? рдпрд╣ рдмрд╣реБрдд рдкреБрд░рд╛рдирд╛ рджреЛрд╖ рд╣реИ рдФрд░ рдЖрдИрдлреНрд░реЗрдо рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рднреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ ...