Greasemonkey: xmlHttpRequest.open рдЕрдм рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдФрд░ рд╣реЛрд╕реНрдЯ рдХреЗ рдмрд┐рдирд╛ рдкрде рд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ

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

II рдиреЗ jesus2099/konami-command#372 рдореЗрдВ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ Firefox v57 + Greasemonkey v4 рдХреЗрд╡рд▓ рдкреВрд░реНрдг URL https?://host.tld/pathname рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдФрд░ рдЕрдм рдХреЗрд╡рд▓ /pathname рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ v57 + рдПрдХ рдФрд░ рдЬреАрдПрдо рдЗрдВрдЬрди рдЗрд╕ рдкреНрд░рддрд┐рдЧрдорди рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдпрд╣рд╛рдВ рдПрдХ рдЯрд┐рдХрдЯ рдЦреЛрд▓рддрд╛ рд╣реВрдВред

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

рдореЗрд░реЗ рдХрд╛рдордХрд╛рдЬ рдореЗрдВ , рдореБрдЭреЗ рдЕрдкрдиреЗ рдпреВрдЖрд░рдПрд▓ рдХреЗ рд╕рд╛рдордиреЗ self.location.protocol + "//" + self.location.host + рдЬреЛрдбрд╝рдирд╛ рдкрдбрд╝рд╛ред

рд╕рд╛рдордЧреНрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрджрд░реНрдн рд╕реЗ рдЪрд▓ рд░рд╣реЗ рдЕрдиреБрд░реЛрдзреЛрдВ (рдЬрд┐рд╕рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдИ рдЬрд╛рддреА рд╣реИрдВ) рдХреЛ рдкреВрд░реНрдг url рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Chrome_incompatibilities#Content_script_requests_happen_in_the_context_of_extension_not_content_page

рдпрджрд┐ рдЖрдк рдкреВрд░реНрдг url рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрдк window.wrappedJSObject рдкрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ exportFunction() рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ (onreadystatechange, рдЖрджрд┐) рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХрд┐рд╕реА рднреА рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдирд┐рд░реНрдпрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╕рд┐рд░реНрдл рдкреВрд░реНрдг рдпреВрдЖрд░рдПрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред

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

рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд╣реИ рдХрд┐ рдпрд╣ рдкреНрд░рддрд┐рдЧрдорди рд╕реНрдерд╛рдпреА рд╣реИ?

рд╢рд╛рдпрджред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ред рдпрджрд┐ рдПрдХ рдЙрдЪрд┐рдд рд╕реИрдВрдбрдмреЙрдХреНрд╕ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рд╢рд╛рдпрдж <strong i="7">@grant</strong> none рдиреАрдЪреЗ рдпреЗ рд╕рдорд╕реНрдпрд╛рдПрдБ рдирд╣реАрдВ рд╣реЛрдВрдЧреАред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдХреБрдЫ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдПрдкреАрдЖрдИ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддреЛ рдпреЗ рдХрджрдо рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдЧреЗрдВрдж рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореЛрдЬрд╝рд┐рд▓рд╛ рдХреЗ рдкрд╛рд▓реЗ рдореЗрдВ рд╣реИред

FTR рдореЗрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдПрдХ <strong i="5">@grant</strong> none рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИред
рдореИрдВрдиреЗ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдиреЗрддрд╛рдУрдВ рдХреЛ рдЗрд╕ рдЯрд┐рдХрдЯ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдпрд╛ рдмрдВрдж рдирд╣реАрдВ рдХрд░рдиреЗ рджрд┐рдпрд╛ред
рдореИрдВ рдЕрдиреБрдХреВрд▓рди рдХрд░реВрдВрдЧрд╛ред

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

рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕рд╣реА рдЖрдзрд╛рд░ рдпреВрдЖрд░рдПрд▓ рд╣реИ: document.baseURI ( <base href="..."> )

рдореИрдВ рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, jQuery AJAX рдХреЗрд╡рд▓ рдкрде рдпреВрдЖрд░рдПрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 57, рдирд╡реАрдирддрдо Greasemonkeyред

$.ajax({
  url: '/some/path',
  success: () => {}
});

рдореЗрд░рд╛ AJAX рдкреБрд░рд╛рдиреЗ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ (рдкреНрд░реА-рд╡реЗрдм рдПрдХреНрд╕рдЯреЗрдВрд╢рди) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ

рдЙрдкрд░реЛрдХреНрдд рд╕реБрдзрд╛рд░ рдХреЛ рдПрдХ рдирдП рдмреАрдЯрд╛ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдкреИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
https://addons.mozilla.org/firefox/downloads/file/830369/greasemonkey-4.2beta1-an+fx.xpi?src=devhub

рдкрд░реАрдХреНрд╖рдг рдФрд░ рдкреБрд╖реНрдЯрд┐ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреА!

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

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

xravian picture xravian  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

GuardianMajor picture GuardianMajor  ┬╖  11рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

arantius picture arantius  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ