Как мне вызвать окно электронного браузера несколько раз? - PullRequest
0 голосов
/ 10 июля 2020

У меня есть программа электронного браузера, которая позволяет пользователю открывать несколько браузеров windows, используя разные прокси для каждого из них. Мне интересно, как вызвать функцию newWindow() несколько раз. В моем текущем коде он открывает все windows, но только одна загружает страницу, как показано на этом рисунке здесь

Вот мой код:

const url = require('url');
const async = require('async')

let win = null


function boot() {
  console.log(process.type)
  win = new BrowserWindow({
    width: 500,
    height: 500,
    resizable: false,
    frame: false
  })
  win.loadURL(`file://${__dirname}/index.html`)


}

function sleep(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

async function newWindow() {
  var proxyList = '196.19.218.117:9044:dailyf:proxies'
  var siteUrl = 'https://twitter.com/home'

  win2 = new BrowserWindow({
    width: 750,
    height: 500,
    resizable: false,
    parent: win,
  })
  win2.webContents.session.setProxy({proxyRules:`http=foopy,direct://${proxyList}`}, function () {
  win2.loadURL(`${siteUrl}`);
  },

  win2.on('closed', () => {
    win = null
  }),
)}

app.on('ready', boot)

function spawnChildren() {
  app.on('ready', _ => {
    console.log('yessirski')
    newWindow();
    sleep(4000)
    newWindow();
    sleep(4000)
    newWindow();
  }) 
}

spawnChildren();```

1 Ответ

0 голосов
/ 10 июля 2020

Сделайте объявление локальной переменной для win2:

var win2 = new BrowserWindow(){

В противном случае win2 будет перезаписан следующим вызовом newWindow(), и только последний будет быть пригодным для использования. (Без объявления var local ваша переменная будет глобальной)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...