Javascript-форум (https://javascript.ru/forum/)
-   Internet Explorer (https://javascript.ru/forum/css-html-internet-explorer/)
-   -   обработчик события focus для окна (https://javascript.ru/forum/css-html-internet-explorer/11943-obrabotchik-sobytiya-focus-dlya-okna.html)

Сергей Д 22.09.2010 15:25

обработчик события focus для окна
 
Кто подскажет выход в такой ситуации
На событие focus окна браузера вешаю обработчик
function myOnfocus()
{
alert ("Привет")
}

в IE вижу сообщение один раз
а в Опере, Мозиле это сообщение выдается в бесконечном цикле.
Понимаю, что alert создает свое окно, закрытие которого передает фокус опять в мое окно, что вновь вызывает обработчик myOnfocus()

Kolyaj 22.09.2010 15:30

Цитата:

Сообщение от Сергей Д
Понимаю, что alert создает свое окно, закрытие которого передает фокус опять в мое окно, что вновь вызывает обработчик myOnfocus()

И в чём вопрос тогда?

micscr 22.09.2010 16:43

Цитата:

Сообщение от Kolyaj (Сообщение 71620)
И в чём вопрос тогда?

вопрос наверное следующий: и вы все еще критикуете IE ? :)
Попробуй так:
var flag = false; // глобальная переменная
function myOnfocus()
{
  if (!flag) {
  flag = true;
  alert ("Привет");
  
  } else {
    // пропускаем
    flag = false;
  }
  
}

Сергей Д 22.09.2010 17:11

Спасибо, но я думал, что можно обойтись без глоб.переменной, т.е. сообщение выдавать не alert-ом, а каким-либо другим способом, которое не не выходило бы из myOnFocus

micscr 22.09.2010 17:33

конечно можно. абсолютно спозиционированным div-ом. Вот только под ним еще надо растянуть другой div например полупрозрачный, чтобы перекрыть остальные элементы страницы от пользователя, пока в первом диве не щелкнут "ОК".


Часовой пояс GMT +3, время: 10:44.