【发布时间】:2020-09-14 19:35:15
【问题描述】:
运行以下电子应用程序时,我没有得到所需的输出,即包含 pwd 作为输出的警报框。但是, index.html 中的注释行似乎工作正常。 chromium 窗口的开发者控制台显示“未捕获的 ReferenceError: __dirname is not defined at HTMLButtonElement.
有什么建议吗?
package.json如下
{
"name": "bookmarker",
"version": "1.0.0",
"description": "electron app",
"main": "./app/main.js",
"scripts": {
"start": "electron .",
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Wasim Aftab",
"license": "ISC",
"dependencies": {
"electron": "^9.0.0"
}
}
main.js如下
const {app, BrowserWindow} = require('electron');
let mainWindow = null;
app.on ('ready', () => {
console.log('Hello, from electron');
mainWindow = new BrowserWindow();
mainWindow.webContents.loadFile(__dirname + '/index.html');
});
index.html如下
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="Content-Security-Policy" content="
default-src 'self';
script-src 'self' 'unsafe-inline';
connect-src *">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>Bookmarker</title>
</head>
<body>
<h1>Hello from Electron</h1>
<p>
<button class="alert">Current Directory</button>
</p>
</body>
<script>
const button = document.querySelector('.alert');
button.addEventListener('click', () => {
alert(__dirname);
// alert(window.location.pathname.replace(/[^\\\/]*$/, ''));
});
</script>
</html>
【问题讨论】:
-
你想用
alert(__dirname);达到什么目的?打包后 __dirname 也不会是您所期望的,而是使用app.getAppPath或app.getPathgithub.com/electron/electron/blob/master/docs/api/…
标签: javascript html electron