javascript - Window.open 弹出窗口卡住整个桌面

标签 javascript .net windows internet-explorer-11

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

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

}

这是为了确保弹出窗口始终保持焦点,除非它被关闭。 但出现的问题是,当弹出声音时,整个桌面都会卡住。除非我们关闭它,否则我们不能做任何其他事情。我们的目的是卡住应用程序,而不是整个桌面。我们该如何解决这个问题呢?提前致谢。

最佳答案

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

如果您想响应某些变化,请不要使用轮询循环。使用事件代替:

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

关于javascript - Window.open 弹出窗口卡住整个桌面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38531602/

相关文章:

windows - 如何检查批处理文件中是否存在变量?

c++ - 在 Windows 上检查非提升用户的文件权限

c# - 我应该实现 IEquatable 还是 IComparable?

c# - WPF DataGrid 列标题使用自定义样式调整大小

windows - USN NFTS 变化通知事件中断

javascript - 如何在 d3 工具提示的 html 元素中使用 Angularjs 过滤器?

c# - 如何在 Entity Framework 中模拟存储库和工作单元模式?

javascript - 如何正确执行这个mysql查询?

javascript - 更改幻灯片时如何获取当前幻灯片的索引?

javascript - 在将 HTML 字符串附加到 DOM 之前使用 jQuery 对其进行操作