我已经安装了按键配置插件并将其配置为每当我按下 时在 Firefox 上切换离线模式Ctrl + Shift + O
。它在以前的 Firefox 版本(28.0 版之前)上运行良好。
然而现在,当我有开发者工具窗格打开时,按下Ctrl + Shift + O
会导致窗格切换到“工具箱选项”选项卡,因此我的“切换离线”选项不会被触发。(仅当键盘“聚焦”在开发人员工具窗格上时才会发生这种情况;如果我实际上正在处理网页(即某些网页元素处于焦点),则Ctrl + Shift + O
无论开发人员工具窗格是否打开,它始终有效。)
我不认为插件或附加组件在这方面会有所帮助,因为Ctrl + Shift + O
快捷方式分配似乎是 Firefox 的开发人员工具窗格本身的一部分。(毕竟,我通过它自定义该快捷方式的 Keyconfig 也是一个附加组件!)
因此,我正在寻找一种可能的方法来改变开发人员工具箱(或 Firefox 本身)的配置,以便重新获得对键盘快捷键的控制权Ctrl + Shift + O
。 (好吧,我知道将我的快捷键更改为其他快捷键会更容易,但我已经习惯了Ctrl + Shift + O
在需要时按下它,所以现在我无法摆脱它。 :) )我已经在网上查找这个问题很长时间了,但仍然无法找到令人满意的解决方案。
非常感谢任何想法/建议。
答案1
可与 Firefox Quantum 一起使用的扩展程序:萨卡基,快捷键
然而,任何延长似乎都是有限的,不起作用在各种情况下:
- 特权页面,例如https://addons.mozilla.org/
- 新标签页,
- 内部页面,例如 about:config、about:newtab、about:addons
- 网页之外,例如 URL 栏/搜索栏
- 在页面加载完成之前
因此,有时您的键盘快捷键会失效,您可能会运行一个完全不同的命令,而这个命令会产生一些不良影响。感谢 Mozilla。
来源:限制列表是从两个扩展的项目页面中收集的。
需要编码技能的复杂选项
- 用户Chrome.js例如以下代码用于删除 Ctrl+B 键绑定。(信用)
var key = document.getElementById('viewBookmarksSidebarKb');
if (key) key.remove();
编写自己的 js,参见底部的代码
var _mappings = {
(启动 Firefox 后将其粘贴到 [浏览器控制台] 中)二进制黑客 Firefox(每次 Firefox 升级后重新运行 hack 脚本)
答案2
只要应用程序出现在应用程序菜单中,macOS 用户可以自定义任何应用程序的快捷方式。
在 Mac 上,选取苹果菜单 >系统偏好设置, 点击键盘,然后点击快捷方式。
选择应用程序快捷方式点击左侧的添加按钮
- 在里面菜单标题字段中,键入要创建快捷方式的菜单命令
更多详细信息请参阅 Apple 网站:https://support.apple.com/guide/mac-help/create-keyboard-shortcuts-for-apps-mchlp2271/mac
你不能禁用然而,您可以覆盖它们。
答案3
答案4
所有功劳归于这在 stackoverflow 上回答。这只会禁用指定的内置命令。
不要忘记在 Linux 下替换Firefox64
if /usr/lib/firefox
(以及反斜杠)。
将这些文件添加到指定目录。
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) {
// there are lots of built-in commands specified in this variable, pick desired ones
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(); }
你可以在浏览器中输入以下 URL,从源获取密钥的 ID 列表
view-source:chrome://browser/content/browser.xhtml
已在 Linux(可能还有 Windows)下的 Firefox 108 上测试并运行。