【发布时间】:2020-05-26 09:27:48
【问题描述】:
我已经通过 Electron Fiddle 尝试了几个版本,但我无法让电子浏览器视图与预加载的 javascript 文件一起使用。我关注了Electron BrowserView not capturing mouse events, Preload script not loading in electron@5.0.0 browserview,以及我可以在 browserview 和预加载的 javascript 上读到的任何其他内容。我可以让预加载的 javascript 从浏览器窗口运行,但不能从浏览器视图运行。我已经尝试了所有的 webpreferences 选项,并确保路径是正确的。没有。我的问题是:任何人都可以提供一些他们已经开始工作的框架代码吗?或者暗示我正在尝试做的事情甚至是可能的。这是我使用的一些代码。就像我之前提到的,它可以从浏览器窗口工作,但不能从浏览器视图工作,没有任何东西输出到控制台。谢谢。
我想让它适用于 Electron v8.0.0
main.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'});
});
preload.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);
});
【问题讨论】:
-
为了复制这个:你用的是什么电子版本?
-
电子 v8.0.0.我还编辑了帖子以指示版本。我已经尝试了从 5.0.0 到 beta 的所有版本
-
你找到出路了吗?我也卡在这里了
标签: electron