Javascript 从electron webview获取所选文本

Javascript 从electron webview获取所选文本,javascript,angular,webview,electron,Javascript,Angular,Webview,Electron,如何在电子应用程序中从webview获取所选文本? 我用的是角电荷和电子。因此,我有一个具有webview的组件: 这是我用来获取所选文本的方法: let rightClickPosition = null; const menu = new Menu(); const menuItem = new MenuItem({ label: 'Get selected text', click: () => { // does not work for selected tex

如何在电子应用程序中从webview获取所选文本? 我用的是角电荷和电子。因此,我有一个具有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()
不适用于webview中选定的文本。它只适用于webview之外的文本。

webview是电子中的一种特殊标记。正如document()所说,
与iframe不同,webview在一个独立的进程中运行,而不是在应用程序中运行。它没有与您的网页相同的权限,您的应用程序和嵌入内容之间的所有交互都将是异步的。


由于这是不同的过程,不允许直接交互,所以您可以在webview和外部框架之间使用ipc进行通信。检查Electron的仪表板组合仪表(ipc)以确定。具体来说,您可能对渲染器主机和webview的
ipcRenderer.sendToHost
感兴趣

谢谢大家!!我在这里找到了一个教程:@Mate你找到解决方案了吗?我没有看到关于如何获取选定文本的教程,我想对选定文本执行“用谷歌搜索”。@WasimA。您可以使用
ipcRenderer.sendtoHost
函数。示例:ipcRenderer.on('request',function(){ipcRenderer.sendToHost('selection',window.getSelection().toString());});