开发者问题收集

Electron Window OnBlur 事件 [未处理的错误]

2020-05-04
1217

应用程序加载时很少出现此错误(并非总是如此)。 index.js 是主文件,在 package.json 中选择,而 script.js 是连接到 electron 应用程序主 html 文件的文件。

在此处输入图像描述 index.js

const {app, BrowserWindow} = require('electron');
const path = require('path');
const url = require('url');

let window;

var APP_DIR = '/app/';
var IMG_DIR = '/images/';

function createWindow() {
    window = new BrowserWindow({
        webPreferences: { nodeIntegration: true },
        width:610,
        height:679,
        icon: path.join(__dirname, APP_DIR, IMG_DIR, 'icon.png'),
        frame: false,
        resizable: false,
        fullscreenable: false
    });

    window.loadURL(url.format({
        pathname: path.join(__dirname, APP_DIR, 'index.html'),
        protocol: 'file:',
        slashes: true
    }));
}

app.on('ready', createWindow);

script.js (发生错误的位置)

var {BrowserWindow} = require('electron').remote;

BrowserWindow.getFocusedWindow().on('blur', function() {
    windowBlurHandler(); //a function
});

我该如何修复它?

1个回答

当所有窗口都模糊时,函数 BrowserWindow.getFocusedWindow() 返回 null 。您收到错误是因为无法在 null 上注册侦听器。

请尝试以下方法:

const mainWindow = require('electron').remote.getCurrentWindow()

mainWindow.on('blur', function() {
  windowBlurHandler()
})
AlekseyHoffman
2020-05-04