我正在为自己的目的创建Electron应用程序。我的问题是,当我在HTML页面中使用节点函数时,它引发以下错误:
未定义'require()'。
有没有办法在我所有的HTML页面中使用Node功能?如果可能的话,请给我举个例子,或者提供一个链接。以下是我要在HTML页面中尝试使用的变量:
var app = require('electron').remote;
var dialog = app.dialog;
var fs = require('fs');
Run Code Online (Sandbox Code Playgroud)
这些是我在Electron的所有HTML窗口中使用的值。
我希望我的应用程序没有标题栏但仍然可以关闭,可拖动,可最小化,可最大化和可调整大小,如常规窗口.我可以在OS X中执行此操作,因为有一个titleBarStyle叫做hidden-inset我可以使用的选项 ,但遗憾的是它不适用于Windows,这是我正在开发的平台.我将如何在Windows中执行此类操作?
我声明使用Electron并试图使最小化和关闭按钮.
的index.html
<button id="minus" onclick="minimize()">minimize</span></button>
<button id="close" onclick="close()">close</span></button>
Run Code Online (Sandbox Code Playgroud)
index.js
const remote = require('electron').remote;
function minimize(){
var window = remote.getCurrentWindow();
window.minimize();
}
function close(){
var window = remote.getCurrentWindow();
window.close();
}
Run Code Online (Sandbox Code Playgroud)
我必须做一些愚蠢的错误或什么,但最小化按钮完美工作,而关闭按钮不工作.
我也尝试了在这里提到的EventListener方法 Atom Electron - 用javascript关闭窗口 并且它工作得很好,但为什么我的函数方法不起作用?
我想通过js关闭Electron App。
"electron": "^13.1.7"
Run Code Online (Sandbox Code Playgroud)
我仔细阅读了这些问题:
但这些都不适合我。
以下所有测试均基于官方的电子快速启动
索引.html
"electron": "^13.1.7"
Run Code Online (Sandbox Code Playgroud)
main.js
<body>
<button id="close-app">
close
</button>
<script src="./renderer.js"></script>
</body>
Run Code Online (Sandbox Code Playgroud)
没有任何影响或错误。
似乎代码从未运行过,我console.log('run')在上面添加了一个addEventListener,但控制台中没有打印任何内容。
(不改变官方的电子快速启动,只改变preload.js和index.html)
索引.html
与上面相同
预加载.js
const { app } = require('electron');
window.addEventListener('DOMContentLoaded', () => {
document.getElementById("close-app").addEventListener("click", function (e) {
app.quit();
})
})
Run Code Online (Sandbox Code Playgroud)
Uncaught TypeError: Cannot read property 'quit' of undefined只
得到
那么,如何通过js关闭Electron App呢?
非常感谢任何人的帮助!