electron 为浏览器视图设置ID

cczfrluj  于 2022-12-16  发布在  Electron
关注(0)|答案(2)|浏览(373)

getAllViews()向我显示了一个所有浏览器视图的列表

[ BrowserView {}, BrowserView {}, BrowserView {} ]

我想BrowserView.fromId(id)应该可以帮助我选择其中的一个,但是我不知道如何为BrowserView设置唯一的id。
我的实际问题,如果你建议另一个解决方案:如何保持我的浏览器视图有组织并选择要显示的特定视图?

brgchamk

brgchamk1#

你可以使用window来区分你的浏览器视图,因为每个浏览器视图都有唯一的tagId,就像这样:执行JavaScript(“窗口.标签ID= '测试ID'“);
然后查看.webContents.executeJavaScript(“window.tagId”)以获取标记ID,这将帮助您进行区分。
如果你的浏览器视图需要重新加载,你可以使用webContents.preload属性来帮助你。

vawmfj5a

vawmfj5a2#

这很容易处理,当你新建浏览器视图后,你会在你的浏览器视图的网页内容中得到id
所以你只需要存储
id**表单browser查看你想要的,然后放入一个变量
当得到你想要的浏览器视图时,可以通过www.example.com为每个浏览器视图webcontents.id
看关键代码

let youwantViewId: number = 0
const mainWindow = new BrowserWindow({ width: 800, height: 600 })
const view = new BrowserView({
    webPreferences:{}
})
mainWindow.addBrowserView(view)
view.setBounds({ x: 0, y: 0, width: 800, height: 600 })
view.webContents.loadURL('https://XXXXXX/public/office-prefetch/office-prefetch.html')
youwantViewId = view.webContents.id
// ------------------------------------
setTimeout(() => {
 mainWindow.getBrowserViews().forEach((item) => {
  if (item.webContents.id === youwantViewId) {
    console.error(item)
  }
 })
},5000)

相关问题