Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在不重新创建窗口的情况下修改选项_Javascript_Node.js_Electron_Electron Window - Fatal编程技术网

Javascript 在不重新创建窗口的情况下修改选项

Javascript 在不重新创建窗口的情况下修改选项,javascript,node.js,electron,electron-window,Javascript,Node.js,Electron,Electron Window,我的申请有问题。我已经创建了一个漂亮的登录窗口,它是一个带有选项{transparent:true,frame:false}的窗口。 用户登录后。我想“重定向”到仪表板,在那里我需要将“透明”选项设置回false,因为仪表板的背景是白色的,我只能在完全透明的窗口上打印字体 有没有什么办法可以让Electronwindow在不重新创建的情况下恢复为非透明 app.js: const electron = require('electron'); const { BrowserWindow } =

我的申请有问题。我已经创建了一个漂亮的登录窗口,它是一个带有选项{transparent:true,frame:false}的窗口。

用户登录后。我想“重定向”到仪表板,在那里我需要将“透明”选项设置回false,因为仪表板的背景是白色的,我只能在完全透明的窗口上打印字体

有没有什么办法可以让Electronwindow在不重新创建的情况下恢复为非透明

app.js:

const electron = require('electron');
const { BrowserWindow } = electron;
const { app } = electron;
const window = require('electron-window');

const { MainProcess } = require("./modules/ipcHelper.js");

const io = require('socket.io-client');
const port = 8888;
let socket;

require('electron-reload')(__dirname)

let mainWindow;

app.on('ready', () => {
    mainWindow = window.createWindow({
        width: 835,
        height: 750,
        frame: false,
        transparent: true,
    });

  let testwindow = new BrowserWindow({
        width: 835,
        height: 750,
        frame: false,
        transparent: true,
    });

    mainWindow.showUrl(`./app/index.html`, () => {

    });

    let mainProcess = MainProcess(mainWindow);

    mainProcess.onReady(() => {
        mainProcess.on('auth', (arg, callback) => {
            socket = io('http://' + arg.servername + ':' + port);

            socket.on("connect", () => {
                socket.emit('auth', { username: arg.username, password: arg.password }, (response) => {
                    if (response.success === true){
                        callback({ success: true });
                    //Here i want to set transparenty back to false
                    }
                    else
                        callback({ success: false, code: response.code });
                });
            });

            socket.on("connect_error",() => {
                callback({ success: false, code: 3 });
            });


        });
    });
})

browser窗口
提供了一系列方法,您可以使用这些方法动态更改属性。我想你要找的是
win.setOpacity()

如果在渲染器过程中执行此操作,则必须使用
remote


getOpacity和/或setOpacity甚至不起作用。我得到一个错误,它不是一个函数。您要确保在这种情况下,
win
是对您试图更改的窗口的引用。例如,如果它是主窗口:
remote.getCurrentWindow()
Im在main进程中工作,因此我在使用全局声明的var mainWindow如果它是
BrowserWindow
的实例,它肯定应该有这些方法。您是否试图在窗口实例化之前调用它们?绝对不是。我可以访问除不透明度以外的所有其他窗口方法。。。