Greasemonkey: GM.registerMenuCommand рдкрд░ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ (рдкреЙрд▓реАрдлрд┐рд▓ рдПрдкреАрдЖрдИ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рджреВрд░ рдЬрд╛ рд░рд╣рд╛ рд╣реИ)

рдХреЛ рдирд┐рд░реНрдорд┐рдд 29 рдЕрдкреНрд░реИрд▓ 2020  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: greasemonkey/greasemonkey

рдХреНрдпреЛрдВрдХрд┐ рдХрд┐рд╕реА рдЕрдиреНрдп рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЗрдВрдЬрди рдиреЗ рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЬрд╣рдордд рдирд╣реАрдВ рдЙрдард╛рдИ, рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдХреЗ рдкрд╛рд╕ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП, рд╕рдВрджрд░реНрдн рдореЗрдиреВ рд╕рдВрд╢реЛрдзрди рдХреНрд╖рдорддрд╛ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЦреБрд▓рд╛ рдмрдЧ рдерд╛, рдЬрд┐рд╕ рдкрд░ рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдХрд╛ registerMenuCommand рднрд╛рдЧ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдЕрдм рдЗрд╕реЗ "рдирд┐рд╢реНрдЪрд┐рдд" (рдЕрд░реНрдерд╛рдд рд╕рдорд░реНрдерди рдХреЛ рд╣рдЯрд╛рдиреЗ) рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╢рд╛рдпрдж рдЬреАрдПрдо 4 рдкрд░ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реЛрдЧрд╛ рдЬреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдореИрдВ рдЕрдкрдиреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди UI рдХреЛ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдЬреИрд╕реА рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХрд╛ рдкрд░реНрдпрд╛рдкреНрдд рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдпрджрд┐ рдХреЛрдИ рдЙрдкрдпреБрдХреНрдд рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдХреЗрд╡рд▓ GreaseMonkey рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЫреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрджреЗрд╢ рджреЗрдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рддрдХрдиреАрдХреА рдХрд╛рд░рдгреЛрдВ рд╕реЗ, рдореИрдВ рдХреЗрд╡рд▓ ViolentMoney рдФрд░ TamperMonkey рдХрд╛ рд╕рдорд░реНрдерди рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЗрд╕ рддрд░рд╣ рдХреЗ "рдЗрд╕реЗ рдПрдХ рдмрд╛рд░ рд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ рд▓рдЧрднрдЧ рдЗрд╕реЗ рдХрднреА рдирд╣реАрдВ рдмрджрд▓реЗрдВ" рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди UI рдмрдЯрди рдХреЗ рд╕рд╛рде рд╕рд╛рдЗрдЯ рдХреЛ рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡реАрдХрд╛рд░реНрдп UX рдХреЛ рдирд╣реАрдВ рдорд╛рдирддрд╛ред

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

+1
рдореБрдЭреЗ рдПрдЪрдЯреАрдПрдордПрд▓ 5 рд╕рдВрджрд░реНрдн рдореЗрдиреВ рдмрд╣реБрдд рдкрд╕рдВрдж рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╡реЗ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ рддреЛ рдореБрдЭреЗ рднреА GM.registerMenuCommand рд╡рд╛рдкрд╕ рдЖрдиреЗ рдХреА рдЙрдореНрдореАрдж рд╣реИред рдореИрдВ рдЦреБрдж рдХреЛ рдорд▓реНрдЯреА-рд╕рд╛рдЗрдЯ рдпреВрдЬрд░рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рд╣реЛрдордореЗрдб рд╕реЙрд▓реНрдпреВрд╢рди рдмрдирд╛рдП рд░рдЦрддреЗ рд╣реБрдП рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддрд╛ред

UI/API рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕реБрдЭрд╛рд╡ рдЬреЛ рдЕрднреА рднреА рдореМрдЬреВрдж рд░рд╣реЗрдЧрд╛ рдЬрд┐рд╕рдХрд╛ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ?

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдмрдВрджрд░ рдореЗрдиреВ рдореЗрдВ рдЪреАрдЬреЛрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реЛрдВрдЧреЗ?

рдЗрд╕ рддрд░рд╣ рд╕реЗ TamperMonkey рдФрд░ ViolentMonkey рдХрд░рддреЗ рд╣реИрдВред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рджреВрд╕рд░рд╛ рд╡рд┐рдХрд▓реНрдк рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдиреЗ рдХреА рд╡реНрдпрд╡рд╣рд╛рд░реНрдпрддрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛрдЧрд╛ рдХрд┐ рдкреЙрд▓реАрдлрд╝рд┐рд▓ browser.menus.create рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рднреА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдкрдВрдЬреАрдХреГрдд рдореЗрдиреВ рдЖрдЗрдЯрдо рдХреЛ рд╕рдВрджрд░реНрдн рдореЗрдиреВ рдХреЗ рд╕рдмрдореЗрдиреВ рдореЗрдВ рдзрдХреЗрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ ... рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╡рд╣ рдЙрдк- рдЙрдиреНрд╣реЗрдВ рд╕рдВрджрд░реНрднреЛрдВ рдХреЗ рджрд╛рдпрд░реЗ рдореЗрдВ рд▓рд╛рдиреЗ рдХреЗ рдХрд┐рд╕реА рддрд░реАрдХреЗ рдХреЗ рдмрд┐рдирд╛ рдЗрд╖реНрдЯрддрдо рдХреНрдпреЛрдВрдХрд┐ рд▓реЛрдЧ рдЖрдорддреМрд░ рдкрд░ рд╕рдВрджрд░реНрдн рдореЗрдиреВ рдХреЗ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реЛрдиреЗ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред

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

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдмрд╛рдж рд╡рд╛рд▓рд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ "рд╡реНрдпрд╡рд╣рд╛рд░реНрдпрддрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ" рд╣реИред рдЬрдм рд╕реЗ рдореИрдВрдиреЗ WebExtensions API рдкрд░ рдкреЛрдХ рдХрд┐рдпрд╛ рд╣реИ рддрдм рд╕реЗ рдпрд╣ рдЗрддрдирд╛ рд▓рдВрдмрд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЙрд╕ рд╕рдВрдмрдВрдз рдореЗрдВ рдЗрд╕рдХреА рд╕реАрдорд╛рдПрдВ рдпрд╛рдж рдирд╣реАрдВ рд╣реИрдВред (рдореИрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрддрд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЕрдзрд┐рдХ рдкреЛрд░реНрдЯреЗрдмрд▓ рд╣реИрдВ рдФрд░ рдЕрдирд┐рд╡рд╛рд░реНрдп рд╡рд┐рд╕реНрддрд╛рд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХреЗ рд╡рд┐рд░реЛрдз рдореЗрдВ рд╣реИрдВред)

рдпрд╣рд╛рдБ рдПрдХ рдкреБрд░рд╛рдирд╛ рдзрд╛рдЧрд╛ рд╣реИ:
https://github.com/greasemonkey/greasmonkey/issues/2714

@arantius

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдмрдВрджрд░ рдореЗрдиреВ рдореЗрдВ рдЪреАрдЬреЛрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рд╣реЛрдВрдЧреЗ?

рднрд▓реЗ рд╣реА рд╕рдВрджрд░реНрдн рдореЗрдиреВ рдХреЛ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рд╕реЗ рдЕрдкреНрд░рдЪрд▓рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛ, GM_registerMenuCommand рдХреЗ рд╕реНрдерд╛рди рдкрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдиреБрдХрд╕рд╛рди рд╣реЛрддреЗ рд╣реИрдВ:

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

рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдЯреНрд░рдВрдХ рдиреЗ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ 85 рдХреЗ рд▓рдХреНрд╖реНрдп рд░рд┐рд▓реАрдЬрд╝ рдореАрд▓ рдХреЗ рдкрддреНрдерд░ рдХреЗ рд╕рд╛рде <menuitem> рддрдХ рдкрд╣реБрдВрдЪ рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреИрдЪ рдЙрддрд░рд╛ред

https://bugzilla.mozilla.org/show_bug.cgi?id=1680596#c11

(рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдпрд╣ рдЗрд╕реЗ dom.menuitem.enabled рдкреНрд░реАрдлрд╝ рдХреЗ рдкреАрдЫреЗ рд░рдЦрддрд╛ рд╣реИ рдЬреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЧрд▓рдд рд╣реИред)

@arantius GM.registerMenuCommand() рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдПрдХ рдЬрд░реВрд░реА рдореБрджреНрджрд╛ рдмрди рдЧрдпрд╛ред

рдпрд╣ рдПрдкреАрдЖрдИ Violemntmonkey рдФрд░ Tampermonkey, рд╕рд╛рде рд╣реА Greasemonkey 3.x рджреЛрдиреЛрдВ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдХрд┐рд╕реА рдЕрдиреНрдп рддрд░реАрдХреЗ рд╕реЗ рдмрджрд▓реА рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддреА рд╣реИ, рдФрд░ рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

рдореИрдВрдиреЗ https://github.com/greasmonkey/greasmonkey/pull/2770 рдЕрджреНрдпрддрди рдореЗрдВ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рднреА рдкрд┐рдЫрд▓реА рдЪрд┐рдВрддрд╛рдУрдВ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ рд╣реИред рдЙрд╕рдХрд╛ рд╡рд┐рд▓рдп рдХреНрдпреЛрдВ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛?

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

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

makyen picture makyen  ┬╖  13рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

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

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

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