Este site está com funcionalidades limitadas enquanto realizamos manutenção para melhorar sua experiência de uso. Se nenhum artigo resolver seu problema e você quiser fazer uma pergunta, nossa comunidade de suporte pode te ajudar em @FirefoxSupport no Twitter e /r/firefox no Reddit.

Pesquisar no site de suporte

Evite golpes de suporte. Nunca pedimos que você ligue ou envie uma mensagem de texto para um número de telefone, ou compartilhe informações pessoais. Denuncie atividades suspeitas usando a opção “Denunciar abuso”.

Saiba mais

Esta discussão foi arquivada. Faça uma nova pergunta se precisa de ajuda.

Remove Shortcuts when hiding menu items

  • 5 respostas
  • 1 tem este problema
  • 1 visualização
  • Última resposta de cor-el

more options

I'm hiding menu items using userChrome.css with option “toolkit.legacyUserProfileCustomizations.stylesheets” set to “true”.

So I am hiding some menu items like for example

  1. menu_find { display: none !important }

however though the menu item is gone how do I get rid of the ctrl-F menu shortcut...

I have many such menu items to remove so I need a generic solution to override the short-cut icons associated with the menu items I want to remove

I'm hiding menu items using userChrome.css with option “toolkit.legacyUserProfileCustomizations.stylesheets” set to “true”. So I am hiding some menu items like for example #menu_find { display: none !important } however though the menu item is gone how do I get rid of the ctrl-F menu shortcut... I have many such menu items to remove so I need a generic solution to override the short-cut icons associated with the menu items I want to remove

Solução escolhida

I found a way by adding two files under the Firefox directory

    • Firefox64\defaults\pref\config-prefs.js**
   pref("general.config.filename", "config.js");    
   pref("general.config.obscure_value", 0);  
   pref("general.config.sandbox_enabled", false); 
    • Firefox64\config.js**
   let { classes: Cc, interfaces: Ci, manager: Cm  } = Components;
   const {Services} = Components.utils.import('resource://gre/modules/Services.jsm');
   function ConfigJS() { Services.obs.addObserver(this, 'chrome-document-global-created', false); }
   ConfigJS.prototype = {
    observe: function (aSubject) { aSubject.addEventListener('DOMContentLoaded', this, {once: true}); },
    handleEvent: function (aEvent) {
      let document = aEvent.originalTarget; let window = document.defaultView; let location = window.location;
      if (/^(chrome:(?!\/\/(global\/content\/commonDialog|browser\/content\/webext-panels)\.x?html)|about:(?!blank))/i.test(location.href)) {
        if (window._gBrowser) {
          let keys = ["key_find", "key_findAgain", "key_findPrevious", "key_gotoHistory", "addBookmarkAsKb", "bookmarkAllTabsKb", "showAllHistoryKb", "manBookmarkKb", "viewBookmarksToolbarKb", "key_savePage", "key_search", "key_search2", "focusURLBar", "focusURLBar2", "key_openDownloads", "openFileKb", "key_reload_skip_cache", "key_viewSource", "key_viewInfo", "key_privatebrowsing", "key_quitApplication", "context-bookmarklink"];
          for (var i=0; i < keys.length; i++) {
             let keyCommand = window.document.getElementById(keys[i]);
             if (keyCommand != undefined) { 
                keyCommand.removeAttribute("command"); 
                keyCommand.removeAttribute("key"); 
                keyCommand.removeAttribute("modifiers"); 
                keyCommand.removeAttribute("oncommand"); 
                keyCommand.removeAttribute("data-l10n-id"); 
             }
          }
        }
      }
    }
   };
   if (!Services.appinfo.inSafeMode) { new ConfigJS(); }

You can get a list of ids for the keys from the source by putting the following URL in your browser

   view-source:chrome://browser/content/browser.xhtml
Ler esta resposta 👍 0

Todas as respostas (5)

more options

You can't disable a keyboard shortcut via CSS (you can only hide content), that is only possible via JavaScript and can possibly be achieved via an autoconfig.cfg file.

more options

cor-el said

You can't disable a keyboard shortcut via CSS (you can only hide content), that is only possible via JavaScript and can possibly be achieved via an autoconfig.cfg file.

Is there any example how to use autoconfig.cfg to do this?

more options

Alterado por cor-el em

more options

Solução escolhida

I found a way by adding two files under the Firefox directory

    • Firefox64\defaults\pref\config-prefs.js**
   pref("general.config.filename", "config.js");    
   pref("general.config.obscure_value", 0);  
   pref("general.config.sandbox_enabled", false); 
    • Firefox64\config.js**
   let { classes: Cc, interfaces: Ci, manager: Cm  } = Components;
   const {Services} = Components.utils.import('resource://gre/modules/Services.jsm');
   function ConfigJS() { Services.obs.addObserver(this, 'chrome-document-global-created', false); }
   ConfigJS.prototype = {
    observe: function (aSubject) { aSubject.addEventListener('DOMContentLoaded', this, {once: true}); },
    handleEvent: function (aEvent) {
      let document = aEvent.originalTarget; let window = document.defaultView; let location = window.location;
      if (/^(chrome:(?!\/\/(global\/content\/commonDialog|browser\/content\/webext-panels)\.x?html)|about:(?!blank))/i.test(location.href)) {
        if (window._gBrowser) {
          let keys = ["key_find", "key_findAgain", "key_findPrevious", "key_gotoHistory", "addBookmarkAsKb", "bookmarkAllTabsKb", "showAllHistoryKb", "manBookmarkKb", "viewBookmarksToolbarKb", "key_savePage", "key_search", "key_search2", "focusURLBar", "focusURLBar2", "key_openDownloads", "openFileKb", "key_reload_skip_cache", "key_viewSource", "key_viewInfo", "key_privatebrowsing", "key_quitApplication", "context-bookmarklink"];
          for (var i=0; i < keys.length; i++) {
             let keyCommand = window.document.getElementById(keys[i]);
             if (keyCommand != undefined) { 
                keyCommand.removeAttribute("command"); 
                keyCommand.removeAttribute("key"); 
                keyCommand.removeAttribute("modifiers"); 
                keyCommand.removeAttribute("oncommand"); 
                keyCommand.removeAttribute("data-l10n-id"); 
             }
          }
        }
      }
    }
   };
   if (!Services.appinfo.inSafeMode) { new ConfigJS(); }

You can get a list of ids for the keys from the source by putting the following URL in your browser

   view-source:chrome://browser/content/browser.xhtml
more options

Note that in Firefox 117 and newer you need to remove this line:

const {Services} = Components.utils.import('resource://gre/modules/Services.jsm');

Add this line instead:

const Services = globalThis.Services || ChromeUtils.import("resource://gre/modules/Services.jsm").Services;