Electron 不监听 keydown 事件
Electron does not listen keydown event
我是一名后端开发人员,有一个小项目来修复它。
所以我的老板给了我一个在触摸设备上运行的电子项目。
我知道如果我使用 document
对象,我可以在 Javascript 中监听任何关键事件,但在电子中它不起作用,它说 docuemnt cannot be found
.
所以当我或其他支持人员按下 F12 按钮然后开发工具在 electron 应用程序中呈现时实现了这一点。
mainWindow = new BrowserWindow({
'web-preferences': {'web-security': false}
});
mainWindow.onkeydown = function (e) {
console.log("Key down");
if (e.which === 123) {
console.log("Key is F12");
mainWindow.webContents.openDevTools();
}
};
但是这段代码对我不起作用。我不知道如何听到按下 F12 按钮。
不幸的是,我无法将按钮渲染到可以显示开发工具的 UI。因为顾客不能按。
有时我需要在设备上的 devtools 中查看实时控制台选项卡。
有一个 known issue in Electron(最近被标记为 wontfix
)阻止了使用传统 JS 方法捕获关键事件的常用方法。
还有一个名为 electron-localshortcut 的小型库,它通过在 window 处于活动状态时劫持 Electron 全局快捷方式 API 来规避此问题。
在你的main.js中这样使用:
const electronLocalshortcut = require('electron-localshortcut');
electronLocalshortcut.register(mainWindow, 'F12', () => {
// Open DevTools
});
可以使用库mousetrap添加全局快捷方式,因为它可以通过node安装,可以绕过接受答案中提到的electron问题
渲染过程中的代码示例为:
var Mousetrap = require('mousetrap');
Mousetrap.bind('4', function() { console.log('4'); });
无需额外的库,您可以使用 electron 的“globalShortcut”
const { app, BrowserWindow, globalShortcut } = require("electron");
globalShortcut.register("CmdOrCtrl+F12", () => {
mainWindow.isFocused() && mainWindow.webContents.toggleDevTools();
});
我觉得F12保留了所以我用ctrl+f12也差不多
我是一名后端开发人员,有一个小项目来修复它。 所以我的老板给了我一个在触摸设备上运行的电子项目。
我知道如果我使用 document
对象,我可以在 Javascript 中监听任何关键事件,但在电子中它不起作用,它说 docuemnt cannot be found
.
所以当我或其他支持人员按下 F12 按钮然后开发工具在 electron 应用程序中呈现时实现了这一点。
mainWindow = new BrowserWindow({
'web-preferences': {'web-security': false}
});
mainWindow.onkeydown = function (e) {
console.log("Key down");
if (e.which === 123) {
console.log("Key is F12");
mainWindow.webContents.openDevTools();
}
};
但是这段代码对我不起作用。我不知道如何听到按下 F12 按钮。
不幸的是,我无法将按钮渲染到可以显示开发工具的 UI。因为顾客不能按。
有时我需要在设备上的 devtools 中查看实时控制台选项卡。
有一个 known issue in Electron(最近被标记为 wontfix
)阻止了使用传统 JS 方法捕获关键事件的常用方法。
还有一个名为 electron-localshortcut 的小型库,它通过在 window 处于活动状态时劫持 Electron 全局快捷方式 API 来规避此问题。
在你的main.js中这样使用:
const electronLocalshortcut = require('electron-localshortcut');
electronLocalshortcut.register(mainWindow, 'F12', () => {
// Open DevTools
});
可以使用库mousetrap添加全局快捷方式,因为它可以通过node安装,可以绕过接受答案中提到的electron问题
渲染过程中的代码示例为:
var Mousetrap = require('mousetrap');
Mousetrap.bind('4', function() { console.log('4'); });
无需额外的库,您可以使用 electron 的“globalShortcut”
const { app, BrowserWindow, globalShortcut } = require("electron");
globalShortcut.register("CmdOrCtrl+F12", () => {
mainWindow.isFocused() && mainWindow.webContents.toggleDevTools();
});
我觉得F12保留了所以我用ctrl+f12也差不多