Как получить срабатывание ивента кнопки в browserView?
У меня есть код:
browserView.webContents.executeJavaScript('
let btn = document.createElement("button")
btn.innerHTML = "Click Me"
btn.addEventListener("click", function () {
return "Button is clicked"
})
document.body.appendChild(btn)
').then(r=> console.log(r))
Что мне нужно сделать, чтобы получить 'Button is clicked' в main process?
В browserView нет nodejs или electron, это стронний сайт.
Получать я хочу каждый клик.
Ответы (1 шт):
Автор решения: Alexei Romanov
→ Ссылка
Все решается через preload для browserView
const browserView = new BrowserView({
webPreferences: {
preload: path.join(__dirname, 'preload.js')
}
})
preload.js
const {ipcRenderer} = require('electron')
window.addEventListener('DOMContentLoaded', () => {
let btn = document.createElement("button")
btn.innerHTML = "Click Me"
btn.addEventListener("click", function () {
ipcRenderer.send('message','button is clicked')
})
document.body.appendChild(btn)
})
И... это работает! В main proccess через ipcMain.on получаем button is clicked