Показать сообщение отдельно
  #1 (permalink)  
Старый 24.09.2008, 12:49
Новичок на форуме
Отправить личное сообщение для bar-boss Посмотреть профиль Найти все сообщения от bar-boss
 
Регистрация: 02.04.2008
Сообщений: 4

Как узнать свернуто окно браузера или нет.
Здравствуйте.

Есть окно сообщений чата. Аяксом раз в 10 секунд посылается запрос на сервер, на котором мы узнаем, есть ли новые сообщения.
Если новые сообщения есть, тогда мы вставляем полученный от аякса ответ в div (innerHTML).
Если новых сообщений нету, то есть аякс возвращает определенное слово (например 'stop'), тогда мы ничего не делаем.

Теперь, нужно определить свернуто окно сообщений чата или нет.
1. Если окно сообщений свернуто (onblur)
- если есть новые сообщения (аякс возвращает не 'stop'), тогда мы динамически меняем document.title ('Новое сообщение!!!' на '********' и наоборот), то есть чтобы оно мигало
- если нет новых сообщений (аякс возвращает 'stop'), тогда мы ничего не делаем.
2. Если окно сообщений не свернуто (onfocus)
- тогда независимо есть ли новые сообщения или нет, тогда мы присваиваем document.title определенное значение (напр, название сайта).

Проблема вот в чем,
при первом открытии чата аякс нам возращает сообщения (то есть не стоп), мы сразу же окно сворачиваем и начинает мигать title,
потом окно разворачиваем, и title присваивается название сайта.
потом ждем очередного ответа от аякса (он нам возвращает 'stop') и затем окно сворачиваем, и в этот момент title опять начинает мигать, а нужно чтобы он не мигал.

вот примерный код

аяксовая функция
function Request_to_Server()
{
if(req.responseText != 'stop')
{
делаем innetHTML = req.responseText
и если окно скрыто то вызываем функцию, которая меняет document.title (может здесь какая-то проблема?)
window.onblur = function()
{
setFlashingTitle();
}
}
else
{
если стоп то ничего не делаем
}
setTimeout('Request_to_Server();',10000);
}

и когда окно разворачивается, отменяем мигание
window.onfocus = function()
{
setNormalTitle();
}
Ответить с цитированием