window.open () после долгого процесса в Worker определяется как всплывающее окно - PullRequest
0 голосов
/ 04 июня 2018

Привет, я хочу открыть новую вкладку после долгого процесса в Worker (займет 5-6 секунд), но она обнаруживается как всплывающее окно.Мой код:

--MAIN--
<button onclick="startWorker()">Start Worker</button> 

function startWorker() {
    if(typeof(Worker) !== "undefined") {

        if(typeof(w) == "undefined") {
            w = new Worker("Worker.js");
        }

        w.onmessage = function(event) {
            window.open(event.data);
        };  
}


--Worker.js--

        //Do something
        postMessage("http://google.com");
  • Затем мне пришло в голову выполнить команду Window.open () из Worker.js, но это зависает в браузере.

Естьесть метод для вызова основного сценария и выполнения команды window.open ()?Например: Main.window.open("something");

  • Другой возможный способ, который мне пришёл в голову, - это вызвать функцию из window.open и вернуть нужную ссылку.Но это не работает, оно возвращает -> неопределенное ... Код: Window.open(startWorker());

Спасибо!

...