我遇到了这个奇怪的问题。我有一个应用程序,我正在做一个window.open从开始页面。我编写了如下代码:
i=1;
while i>0
{
if (!mywindow.closed)
{
mywindow.focus()
}
else {
1--;
}
}
这是为了确保弹出窗口始终保持对焦,除非它已关闭。 但问题在于,当流行音乐出现时,整个桌面都会被冻结。除非我们关闭它,否则我们不能做任何其他事情。我们的目的是冻结应用程序而不是整个桌面。我们怎样才能解决这个问题?提前谢谢。
答案 0 :(得分:1)
JavaScript不是多线程的;如果你运行while
循环,它将占用JavaScript的整个执行。换句话说,mywindow.closed
永远不会有机会改变。
如果您想回应一些变化,请不要使用轮询循环。请改用事件:
// Not sure if this would work, but illustrates using events.
mywindow.addEventListener('blur', function () {
mywindow.focus();
});