gpt4 book ai didi

Electron Browserview 和 Preload JavaScript 问题

转载 作者:行者123 更新时间:2023-12-03 12:22:25 44 4
gpt4 key购买 nike

我已经通过 Electron Fiddle 尝试了几个版本,但我无法让 electron browserview 使用预加载的 javascript 文件。我关注了Electron BrowserView not capturing mouse events , Preload script not loading in electron@5.0.0 browserview ,以及我可以在 browserview 和预加载的 javascript 上阅读的任何其他内容。我能够让预加载的 javascript 从浏览器窗口运行,但不能从浏览器 View 运行。我已经尝试了所有的 webpreferences 选项,并确保路径是正确的。没有什么。我的问题是:任何人都可以提供一些他们已经开始工作的框架代码吗?或者关于我正在尝试做什么的提示甚至是可能的。这是我使用的一些代码。就像我之前提到的,它在浏览器窗口而不是浏览器 View 中工作,没有任何输出到控制台。谢谢。

我想让它在 Electron v8.0.0 上工作

主要.js

const path = require('path');
const { BrowserView, BrowserWindow, app } = require('electron')

app.on('ready', () => {
let win = new BrowserWindow({ width: 800, height: 600 });
win.on('closed', () => { win = null });

const view = new BrowserView();
win.setBrowserView(view);
view.setBounds({ x: 0, y: 0, width: 800, height: 600,
webPreferences: { devTools: true, contextIsolation: true, preload: path.join(app.getAppPath(), 'preload.js') } });
view.webContents.loadURL('https://electronjs.org');
view.webContents.openDevTools({mode:'undocked'});
});

预加载.js

const { webFrame } = require('electron');

webFrame.executeJavaScript('window.foo = "foo";');
window.bar = 'bar';

document.addEventListener('DOMContentLoaded', () => {
// Will log out 'undefined' since window.foo is only available in the main
// context
console.log(window.foo);

// Will log out 'bar' since window.bar is available in this context
console.log(window.bar);
});

最佳答案

const view = new BrowserView({
webPreferences: {
devTools: true,
contextIsolation: true,
preload: path.join(app.getAppPath(), 'preload.js')
}
});
win.setBrowserView(view);
view.setBounds({ x: 0, y: 0, width: 800, height: 600 });

webPreferences 应该在 BrowserView 的选项中

关于Electron Browserview 和 Preload JavaScript 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60160953/

44 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com