【发布时间】:2020-08-28 14:37:53
【问题描述】:
我现在正在尝试从“Electron in Action”一书中学习 ElectronJS (https://www.amazon.com/Electron-Action-Steve-Kinney/dp/1617294144/)。
我遇到困难的代码是我通过加载到渲染器进程窗口的 HTML 文件中 <script> 标记中的 JS 代码,尝试访问 __dirname 变量(即通常仅在 node 中可用,但在 Electron 中,应该也可用于 Chromium 上下文)。
对于任何感兴趣的人,这是清单 2.8(第 28 页)。代码如下:
<!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>
<script>
const button = document.querySelector('.alert');
button.addEventListener('click', ()=> {alert(__dirname);});
</script>
</body>
</html>
这是主进程的代码:
const {app, BrowserWindow} = require('electron');
let main_window = null;
app.on('ready',
() =>
{
console.log('Hello from Electron');
main_window = new BrowserWindow();
main_window.webContents.loadFile('app/index.html');
}
);
但它不起作用。在 Rendering Window 的开发者控制台中,每次单击按钮时,都会出现错误提示 __dirname 未定义。
我该如何解决这个问题?提前致谢。
【问题讨论】:
标签: javascript node.js electron