从电子webview获取选定的文本

时间:2017-12-14 22:18:44

标签: javascript angular webview electron

如何从电子申请中的网页浏览中获取所选文字? 我正在使用Angular和Electron。所以我有一个具有webview的组件:

i

这是我用来获取所选文本的内容:

<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); 不适用于webview中的选定文本。它仅适用于webview外部的文本。

1 个答案:

答案 0 :(得分:1)

webView是Electron中的一种特殊标签。正如文档(https://electronjs.org/docs/api/webview-tag)所说,view.setBackground(drawable)

由于它是不同的过程并且不允许直接交互,因此您可以在webview和外部框架之间使用ipc进行通信。检查Electron的ipc以确定。具体而言,您可能对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.感兴趣的渲染器主机和webview。