custom-электронный-заголовок ReferenceError: навигатор не определен - PullRequest
0 голосов
/ 30 марта 2020

Когда я пытаюсь сделать пользовательский электронный заголовок в индексе. js, я получаю ошибку.

мой индекс. js код:

    const { app, BrowserWindow } = require('electron');
    const customTitlebar = require('custom-electron-titlebar');
    var path = require('path');

    let mainWindow;

    function onClosed() {
    mainWindow = null;
}
app.on('ready', () => {

    mainWindow = new BrowserWindow({
        width: 350,
        height: 210,
        frame: false
    })
    new customTitlebar.Titlebar({
        backgroundColor: customTitlebar.Color.fromHex('#444')
    });

    customTitlebar.setTitle('asd')

    mainWindow.setMenuBarVisibility(false)
    mainWindow.loadURL(`file:\\${__dirname}\\index.html`)
    mainWindow.on('closed', onClosed)
});

, если я Запустите это, я получаю эту ошибку:

ReferenceError: navigator is not defined
at Object.<anonymous> (<mypath>\node_modules\custom- 
electron-titlebar\lib\browser\browser.js:130:19)
at Module._compile (internal/modules/cjs/loader.js:968:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:986:10)
at Module.load (internal/modules/cjs/loader.js:816:32)
at Module._load (internal/modules/cjs/loader.js:728:14)
at Module._load (electron/js2c/asar.js:717:26)
at Function.Module._load (electron/js2c/asar.js:717:26)
at Module.require (internal/modules/cjs/loader.js:853:19)
at require (internal/modules/cjs/helpers.js:74:18)
at Object.<anonymous> (D:\Programing\Projects\ElectronProjects\Calculator\node_modules\custom- 
electron-titlebar\lib\common\dom.js:7:17)

Я импортировал "Custom-Electron-Titlebar", но он не работает.

1 Ответ

0 голосов
/ 30 марта 2020

navigator - это API-интерфейс браузера, который доступен только в процессе Renderer. Вы вызываете require('custom-electron-titlebar') из основного процесса, который не имеет доступа к этому API.

Вам необходимо запустить импорт библиотеки из процесса Renderer или добавить ее в HTML тег сценария в соответствии с документами об использовании из custom-electron-titlebar.

. Для получения дополнительной информации о модели процесса Electron вы можете проверить документы .

Основной процесс создает веб-страницы путем создания BrowserWindow экземпляров. Каждый экземпляр BrowserWindow запускает веб-страницу в своем собственном процессе визуализации. Когда экземпляр BrowserWindow уничтожается, соответствующий процесс визуализации также прекращается.

Основной процесс управляет всеми веб-страницами и соответствующими им процессами визуализации. Каждый процесс визуализации изолирован и заботится только о выполняющейся в нем веб-странице.

На веб-страницах вызов собственных API, связанных с GUI, не разрешен, поскольку управление собственными GUI ресурсами на веб-страницах очень опасно и легко утечь ресурсы. Если вы хотите выполнить GUI операций на веб-странице, процесс рендеринга веб-страницы должен связаться с основным процессом, чтобы запросить, чтобы основной процесс выполнил эти операции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...