Javascript 自定义电子标题栏引用错误:未定义导航器
当我试图在index.js中自定义电子标题栏时,我得到了一个错误 my index.js代码:Javascript 自定义电子标题栏引用错误:未定义导航器,javascript,electron,titlebar,Javascript,Electron,Titlebar,当我试图在index.js中自定义电子标题栏时,我得到了一个错误 my index.js代码: const { app, BrowserWindow } = require('electron'); const customTitlebar = require('custom-electron-titlebar'); var path = require('path'); let mainWindow; function onClosed() {
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)
ReferenceError:未定义导航器
反对。(\node\u modules\custom-
电子标题栏\lib\browser\browser.js:130:19)
at模块编译(内部/modules/cjs/loader.js:968:30)
at Object.Module._extensions..js(internal/modules/cjs/loader.js:986:10)
在Module.load(内部/modules/cjs/loader.js:816:32)
at模块加载(内部/modules/cjs/loader.js:728:14)
at模块负载(electron/js2c/asar.js:717:26)
在功能模块上加载(electron/js2c/asar.js:717:26)
at Module.require(内部/modules/cjs/loader.js:853:19)
根据需要(internal/modules/cjs/helpers.js:74:18)
反对。(D:\Programing\Projects\ElectronProjects\Calculator\node\U modules\custom-
电子标题栏\lib\common\dom.js:7:17)
我导入了“自定义电子标题栏”,但它不起作用。
navigator
是一种浏览器API,仅在渲染器过程中可用。您正在从主进程调用require('custom-electron-titlebar')
,主进程无权访问该API
您必须运行“从渲染器导入库”进程,或将其添加到HTML脚本标记中,如自定义电子标题栏所示
有关电子过程模型的更多信息,请查看
主进程通过创建BrowserWindow
实例来创建网页。每个BrowserWindow
实例在其自己的呈现程序进程中运行网页。当浏览器窗口
实例被销毁时,相应的渲染器进程也会终止
主进程管理所有网页及其相应的渲染器进程。每个渲染器进程都是独立的,只关心其中运行的网页
在网页中,不允许调用与本机GUI相关的API,因为在网页中管理本机GUI资源非常危险,而且很容易泄漏资源。如果要在网页中执行GUI操作,则网页的呈现程序进程必须与主进程通信,以请求主进程执行这些操作
navigator
是一种浏览器API,仅在渲染器进程中可用。您正在从主进程调用require('custom-electron-titlebar')
,主进程无权访问该API
您必须运行“从渲染器导入库”进程,或将其添加到HTML脚本标记中,如自定义电子标题栏所示
有关电子过程模型的更多信息,请查看
主进程通过创建BrowserWindow
实例来创建网页。每个BrowserWindow
实例在其自己的呈现程序进程中运行网页。当浏览器窗口
实例被销毁时,相应的渲染器进程也会终止
主进程管理所有网页及其相应的渲染器进程。每个渲染器进程都是独立的,只关心其中运行的网页
在网页中,不允许调用与本机GUI相关的API,因为在网页中管理本机GUI资源非常危险,而且很容易泄漏资源。如果要在网页中执行GUI操作,则网页的呈现程序进程必须与主进程通信,以请求主进程执行这些操作