假设我在BrowserView
中有一个BrowserWindow
:
browserWindow = new BrowserWindow({ width: 1200, height: 600 });
browserWindow.webContents.loadURL('file://' + __dirname + '/top_toolbar.html');
let browserView1 = new BrowserView({ webPreferences: { nodeIntegration: false }});
browserWindow.setBrowserView(browserView1);
browserView1.setBounds({ x: 0, y: 50, width: 600, height: 600 }); // y=50 to keep top toolbar
browserView1.webContents.loadURL('https://www.twitter.com');
当我单击UI按钮(另一个“标签”,例如在浏览器中)时,我想将URL更改为另一个网站(例如https://www.gmail.com)。
当我单击返回第一个“选项卡”时,我希望BrowserView
恢复先前的网站(Twitter)及其所有浏览历史记录。显然,使用:
browserView1.webContents.loadURL('https://www.twitter.com');
再次并不是一个好的解决方案,因为会有页面加载等待时间。
相反,我想立即恢复BrowserView
的先前状态(即<50毫秒),就像在Chrome或Firefox这样的浏览器中单击选项卡时一样:如果标签页中的网站之前已经加载过,则只需点击标签页即可重新显示该网站。
问题:如何存储并立即恢复BrowserView
状态?,即无需重新加载页面?
答案 0 :(得分:0)
请尝试单击按钮:
onClick(){
const shell = require('electron').shell;
event.preventDefault();
shell.openExternal('https://www.twitter.com');
}
答案 1 :(得分:0)
解决方案是拥有多个BrowserView并在它们之间切换。这样,每个人都会记住其历史。
var browserViews = [];
var activeBW;
function addAndSwitchToTab() {
activeBW = browserViews.length;
browserViews[activeBW] = new BrowserView();
browserWindow.setBrowserView(activeBW);
}
从第一个开始:
addAndSwitchToTab();
当用户打开一个新标签时,只需再次调用该函数即可。