функция. Пример: ipcRenderer.on ('request', function () {ipcRenderer.sendToHost ('selection', window.getSelection (). ToString ());});

олучить выделенный текст из веб-просмотра в электронном приложении? Я использую Angular с Electron. Итак, у меня есть компонент, который имеет веб-просмотр:

<webview id="foo" attr.src={{activeUrl}} style="height: 600px"></webview>

Вот что я использую для получения выделенного текста:

let rightClickPosition = null;
const menu = new Menu();
const menuItem = new MenuItem({
  label: 'Get selected text',
  click: () => {
    // does not work for selected text in webview
    console.log(window.getSelection().toString());
  }
});
menu.append(menuItem);
window.addEventListener('contextmenu', (e) => {
  e.preventDefault();
  rightClickPosition = {x: e.x, y: e.y};
  menu.popup(remote.getCurrentWindow());
}, false);

Проблема:window.getSelection().toString() не работает для выделенного текста в веб-просмотре. Это работает только для текста за пределами веб-просмотра.

Ответы на вопрос(1)

Решение Вопроса

https://electronjs.org/docs/api/webview-tag) говорит,Unlike an iframe, the webview runs in a separate process than your app. It doesn't have the same permissions as your web page and all interactions between your app and embedded content will be asynchronous..

Поскольку это другой процесс, и он не допускает прямого взаимодействия, вы можете общаться с помощью ipc между webview и внешним фреймом. Проверьте IPC Электрон, чтобы установить. В частности, вы можете быть заинтересованы вipcRenderer.sendToHost для рендерера хоста и веб-просмотра.

 Mate17 дек. 2017 г., 22:00
Спасибо! Я нашел учебник здесь:ourcodeworld.com/articles/read/201/...
 Mate03 дек. 2018 г., 18:41
@WasimA. Вы можете использоватьipcRenderer.sendtoHost функция. Пример: ipcRenderer.on ('request', function () {ipcRenderer.sendToHost ('selection', window.getSelection (). ToString ());});
 Wasim A.13 нояб. 2018 г., 13:19
@Mate вы нашли решение, я не видел учебник о том, как получить выделенный текст, я хочу выполнить "поиск с помощью Google" для выбранного текста.

Ваш ответ на вопрос