2016-07-22 2 views
0

У меня возникает эта странная проблема. У меня есть приложение, и я делаю window.open с начальной страницы. Я написал код, как показано ниже:Window.open pop up замерзает весь рабочий стол

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

} 

Это, чтобы убедиться, что всплывающее окно всегда остается в центре внимания, если она не будет закрыта. Но проблема заключается в том, что когда поп-то есть, весь рабочий стол замерзает. мы не можем делать что-либо еще, если мы не закрываем его. наше намерение состояло в том, чтобы заморозить приложение, но не весь рабочий стол. Как мы можем решить эту проблему? Заранее спасибо.

+0

Является ли '1 -' на самом деле 'i ​​-' в вашем коде? – Jacob

ответ

1

JavaScript не является многопоточным; если вы запустите цикл while, он свяжет все выполнение JavaScript. Другими словами, mywindow.closed никогда не получит шанс измениться.

Если вы хотите отреагировать на что-то изменившееся, не используйте цикл опроса. Вместо этого используйте событие:

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

Привет, Спасибо за ответ. Моя проблема связана не с приложением, а с замораживанием всего рабочего стола, например, я не могу проверить почту или открыть документ или что-нибудь еще, пока это вскрытие не будет закрыто. что ожидается? – Tiya

+0

Эта небольшая петля займет столько же CPU, сколько может; независимо от того, зависает ли ваш рабочий стол от зависания запасного процессора, поэтому имеет смысл, что это произойдет. – Jacob

+0

Это объясняет это. Спасибо. :) – Tiya