Как использовать ipcRender внутри execute Javascript? - PullRequest
0 голосов
/ 25 февраля 2020

Я попытался просто поместить сообщение ipcRenderer внутрь execute Javascript, но оно вернуло

ipcRenderer не определен

мой ipcRender определен с помощью window.ipcRenderer :

const { ipcRenderer, remote } = require('electron');
window.ipcRenderer = ipcRenderer;

//and then

remote.getCurrentWebContents().executeJavaScript(`settingsDiv.addEventListener('click', function() { ipcRenderer.send('test','ayy'); } );`)

Загружается как предварительно загруженный скрипт для веб-страницы.

1 Ответ

0 голосов
/ 25 февраля 2020

Нет необходимости использовать этот путь для предварительной загрузки.

Вместо этого должно работать что-то вроде этого:

const { ipcRenderer } = require('electron');

document.addEventListener('DOMContentLoaded', (event) => {
   const settingsDiv = document.querySelector('<?>');  // replace <?> with your selector for that div element
   settingsDiv.addEventListener('click', () => { 
         ipcRenderer.send('test', 'ayy'); 
   });
}

(сначала выполняется предварительная загрузка, затем страница отображается. нам нужно подождать, пока контент DOM загрузится и div станет доступен)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...