Window.open弹出窗口会冻结整个桌面

时间:2016-07-22 16:45:29

标签: javascript .net windows internet-explorer-11

我遇到了这个奇怪的问题。我有一个应用程序,我正在做一个window.open从开始页面。我编写了如下代码:

i=1;
while i>0
{
 if (!mywindow.closed)
{
mywindow.focus()
}
else {
1--;
}

}

这是为了确保弹出窗口始终保持对焦,除非它已关闭。 但问题在于,当流行音乐出现时,整个桌面都会被冻结。除非我们关闭它,否则我们不能做任何其他事情。我们的目的是冻结应用程序而不是整个桌面。我们怎样才能解决这个问题?提前谢谢。

1 个答案:

答案 0 :(得分:1)

JavaScript不是多线程的;如果你运行while循环,它将占用JavaScript的整个执行。换句话说,mywindow.closed永远不会有机会改变。

如果您想回应一些变化,请不要使用轮询循环。请改用事件:

// Not sure if this would work, but illustrates using events.
mywindow.addEventListener('blur', function () { 
  mywindow.focus(); 
});