Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определить активно ли окно 
V
    Опции темы
comtat
Дата 27.9.2007, 00:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1310
Регистрация: 2.5.2006
Где: Россия, Казань

Репутация: 4
Всего: 71



Ситуация такая, через каждую минуту запускается скрипт php котроый определяет есть ли заметки или нет
Если есть то выводится popup окно
Вот функция котороя его создает
Код

function CreateEventsPopup(body){
    popup = window.createPopup();
    var popupBody = popup.document.body;
    var html = "<HTML><link href='tools/events.css' type=text/css rel=stylesheet><BODY title='Закрыть окно' onclick='javascript: hidden=true; selfWindow.hide();'>";
    html += body + "</BODY></HTML>";
    popupBody.document.write(html); 
    popup.document.selfWindow = popup;
    popup.document.hidden = false;
    popup.document.targetWindow = window.parent.window.frames["page"].window;

    y2 = 100;
    x2 = 200;
    y1 = screen.height - y2;
    x1 = screen.width - x2;
    //popup.show(x1, y1, x2, y2);
    CheckForOpen(x1, y1, x2, y2);//Открываем окно и держим открытым до тех пор, пока на него не кликнут
    return popup;
}

Проблема в том, что если окно(IE6 или FireFox) или закладка (IE7), в котором вышло окно было/была
неактивна, то вываливается MessageBox ("Неопознанная ошибка") и например IE ругается "всплывающее окно заблокировано".

Как можно определить, является ли данное окно\закладка активным(ой) ??


--------------------
Рожденный в СССР !!!
ExtJS - мой фреймворк 
PM   Вверх
dstorm81
Дата 27.9.2007, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


бездельник
***


Профиль
Группа: Завсегдатай
Сообщений: 1178
Регистрация: 18.1.2006
Где: (16RU)

Репутация: 20
Всего: 39



2comtat

window.onblur = function() {
    // Pause the Ajax updates or animations
};
window.onfocus = function() {
    // Start the Ajax updates and animations again
};


 при блуре (скрытии страницы) ставишь такую нить переменную в false и не запускаешь окно, до тех пор пока переменная не изменилась
а потом наоборот изменяешь состояние переменной



Это сообщение отредактировал(а) dstorm81 - 27.9.2007, 09:29


--------------------
на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#)

PM   Вверх
comtat
Дата 27.9.2007, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1310
Регистрация: 2.5.2006
Где: Россия, Казань

Репутация: 4
Всего: 71



Попробовал, что-то не помогло 
Код

var active = false;

window.onblur = function() {
    active = false;
};
window.onfocus = function() {
    active = true;
};

function CheckForActive(){
    return active;
}

function CreateEventsPopup(body){
    var html = "<HTML><link href='tools/events.css' type=text/css rel=stylesheet><BODY title='Закрыть окно' onclick='javascript: hidden=true; if(selfWindow.hide)selfWindow.hide(); else window.close();'><scr" + "ipt>var selfWindow=this;</scr" + "ipt>";
    html += body + "</BODY></HTML>";

    y2 = 100;
    x2 = 200;
    y1 = screen.height - y2;
    x1 = screen.width - x2;
    if (CheckForActive()) {
        popup = CreateIEPopup(x1, y1, x2, y2, html, null, "window");
        popup.document.selfWindow = popup;
        popup.document.hidden = false;
        popup.document.targetWindow = window.parent.window.frames["page"].window;
    
        CheckForOpen();//Открываем окно и держим открытым до тех пор, пока на него не кликнут
    }
    return popup;
}

Вываливает message("popup.document есть 'null' или не является объектом")
и IE блочит окно


--------------------
Рожденный в СССР !!!
ExtJS - мой фреймворк 
PM   Вверх
dstorm81
Дата 27.9.2007, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


бездельник
***


Профиль
Группа: Завсегдатай
Сообщений: 1178
Регистрация: 18.1.2006
Где: (16RU)

Репутация: 20
Всего: 39



кажись это защита от всплывающих окон
но это некрасиво при активации окна получать вспывающее окно, 
которое сразу становится активны а родительское неактивным, 
закрываем всплывшее окно - опять активируем родительсткое и так до бесконечности???
советую сделать имитацию окна на дивах и не мучить себя и пользователей
и прикруьтить ajax = наилучший вариант стопудово который будет работать везде



--------------------
на форуме с 8.12.2002 (http://forum.vingrad.ru/index.php?act=ST&f=10&t=4874&st=0#)

PM   Вверх
comtat
Дата 27.9.2007, 22:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1310
Регистрация: 2.5.2006
Где: Россия, Казань

Репутация: 4
Всего: 71



Спасибо за ответ и совет!! Обязательно воспользуюсь


--------------------
Рожденный в СССР !!!
ExtJS - мой фреймворк 
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0544 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.