gpt4 book ai didi

node.js - Electron window.opener 与浏览器一样完全支持

转载 作者:太空宇宙 更新时间:2023-11-04 00:34:57 24 4
gpt4 key购买 nike

我正在开发一个基于 Electron 的多窗口桌面应用程序,我需要与应用程序的其他窗口共享主应用程序进程中的对象实例。目前在浏览器(Chrome 52.0.2743.116)中你可以引用window.opener来实现这一点。在浏览器中,window.opener(在子窗口中)将为您提供调用 window.opent(myURL) 的 Window 对象的实例。

例如,如果您在 window.myData = {}; 中设置(主窗口)myData 的相同实例将在(子窗口)中可用,并将通过 (window.opener.myData) 访问.

在 Electron 中,当我通过 (window.opent(myURL)) 打开窗口时,window.opener 被替换为 BrowserWindowProxy (Electron API),它不会暴露与其中相同的窗口(Window 对象实例)调用了 (window.open(myURL))。 Electron 中有没有一种方法可以像在浏览器中一样访问 window.opener?

使用remote.sharedObject(Electron API)不是一种选择,因为它只能序列化/反序列化数据,并且可用于将数据从一个窗口传递到其他窗口,但不能跨窗口访问相同的对象实例。

最佳答案

纠正 window.opener,并使用 facebook(和其他)登录

您需要使用webPreferences.nativeWindowOpen=true,并为mainWindow设置相同的webPreferences.affinity,并打开窗口( Hook mainWindow.webContents.on('new-window')) https://gist.github.com/Gvozd/2cec0c8c510a707854e439fb15c561b0

关于node.js - Electron window.opener 与浏览器一样完全支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39474703/

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