主要吧,我先是創建了一個js文件,在里面這么寫着:
function toClose() {
const ipcRenderer = require('electron')
ipcRenderer.send('close-app')
}
然后再在index.html中引入js文件,在div標簽中添加屬性onclick="toClose()"
。
但是運行后會提示不能在初始化之前使用ipcRenderer。
然后我想着把require放在函數外面,當然這是沒什么作用的。
之后我有將函數放在preload.js之中,因為這里已經由現成的引入和函數了,那么其他的能用沒道理我的不能用。
我的還是不能用。
最后我的解決方法是在preload.js中(也可以不在)這么寫:
// preload.js
const { contextBridge, ipcRenderer } = require('electron')
// 此處省略一些無關代碼
contextBridge.exposeInMainWorld('window_control', {
toClose: () => ipcRenderer.send('close-app'),
toMinimize: () => ipcRenderer.send('min-app'),
})
之后在renderer.js中(也可不在)定義按鈕的監聽函數:
對了,我在這里使用
querySelector().onclick = () => {}
也無效,很迷茫~懷念vue了。
// renderer.js
document.querySelector(".my-btn-close").addEventListener('click', () => {
window.window_control.toClose()
})