如何从电子申请中的网页浏览中获取所选文字? 我正在使用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外部的文本。
答案 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。