II рдиреЗ jesus2099/konami-command#372 рдореЗрдВ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ Firefox v57 + Greasemonkey v4 рдХреЗрд╡рд▓ рдкреВрд░реНрдг URL https?://host.tld/pathname
рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдФрд░ рдЕрдм рдХреЗрд╡рд▓ /pathname
рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред
рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ v57 + рдПрдХ рдФрд░ рдЬреАрдПрдо рдЗрдВрдЬрди рдЗрд╕ рдкреНрд░рддрд┐рдЧрдорди рд╕реЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдпрд╣рд╛рдВ рдПрдХ рдЯрд┐рдХрдЯ рдЦреЛрд▓рддрд╛ рд╣реВрдВред
рдореЗрд░реЗ рдХрд╛рдордХрд╛рдЬ рдореЗрдВ , рдореБрдЭреЗ рдЕрдкрдиреЗ рдпреВрдЖрд░рдПрд▓ рдХреЗ рд╕рд╛рдордиреЗ self.location.protocol + "//" + self.location.host +
рдЬреЛрдбрд╝рдирд╛ рдкрдбрд╝рд╛ред
рд╕рд╛рдордЧреНрд░реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдВрджрд░реНрдн рд╕реЗ рдЪрд▓ рд░рд╣реЗ рдЕрдиреБрд░реЛрдзреЛрдВ (рдЬрд┐рд╕рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдИ рдЬрд╛рддреА рд╣реИрдВ) рдХреЛ рдкреВрд░реНрдг url рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
рдпрджрд┐ рдЖрдк рдкреВрд░реНрдг 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
рдкрд░реАрдХреНрд╖рдг рдФрд░ рдкреБрд╖реНрдЯрд┐ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХреА рдЬрд╛рдПрдЧреА!