Javascript 使用Electron访问webview DOM

Javascript 使用Electron访问webview DOM,javascript,electron,Javascript,Electron,我正在尝试访问webview中的DOM。我知道我需要使用IPC,但使用同一文件中的以下代码,一个访问父级,一个访问webview Preload.js(使用webview的Preload属性) index.js window.webContents.once('dom-ready', () => { globalShortcut.register('MediaPlayPause', () => { window.webContents.send('ppause

我正在尝试访问webview中的DOM。我知道我需要使用IPC,但使用同一文件中的以下代码,一个访问父级,一个访问webview

Preload.js(使用
webview
Preload
属性)

index.js

window.webContents.once('dom-ready', () => {
    globalShortcut.register('MediaPlayPause', () => {
        window.webContents.send('ppause');
    });
});
globalShortcut.register('MediaPlayPause', () => {
    window.webContents.send('ppause');
});

我希望能够访问webview DOM(例如在setInterval函数中),但我似乎无法解决它。

我最终解决了这个问题

我需要将它发送到WebContent,然后从那里发送到webview

预加载

ipcRenderer.on('ppause', () => {
    console.log(document); // can now manipulate webview DOM
});
浏览器

const webview = document.getElementById('webview');
ipcRenderer.on('ppause', () => {
    webview.send('ppause');
});
index.js

window.webContents.once('dom-ready', () => {
    globalShortcut.register('MediaPlayPause', () => {
        window.webContents.send('ppause');
    });
});
globalShortcut.register('MediaPlayPause', () => {
    window.webContents.send('ppause');
});

所需的只是额外发送到webview。

这有帮助吗?不,我想这就是我使用ipc所做的,除非我感到困惑。你在主窗口中像iframe一样使用webview吗?我在官方网站上读到了不推荐的内容。我可以帮你做一个儿童窗户。我能做到,我知道了。看看我的答案。