русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Управляем фокусом в окнах


Дата добавления: 2013-12-23; просмотров: 502; Нарушение авторских прав


Управление фокусом

Демонстрационный пример

Удаление cookie

Удалить куки - значит в качестве времени истечения куки указать какой-либо прошлый момент времени, например, "сутки назад". Напишем соответствующую функцию:

function deleteCookie(CookieName){ // Удаляет куки с данным именем setCookie(CookieName,'',TimeAfter(-1,0,0)); }

Теперь у нас есть весь арсенал функций работы с куки; сохраните их единый в файлcookies.js. Мы создадим две независимые web-страницы, которые благодаря куки смогут обменяться информацией. Первая страница запрашивает имя пользователя и записывает его в куки сроком на 1 минуту.

<SCRIPT SRC='cookies.js'></SCRIPT><SCRIPT>setCookie('customername', prompt('Введите ваше имя',''), TimeAfter(0,0,1) );alert('Мы Вас запомнили!');</SCRIPT>

Пример 8.1. Запись имени пользователя в cookie (html, txt)

Вторая страница приветствует пользователя по имени, которое она прочитает из cookie. Убедитесь, что она узнает пользователя, даже если перед открытием страницы закрыть браузер. Однако если открыть эту страницу через 1 минуту, то она уже не сможет узнать пользователя.

<SCRIPT SRC='cookies.js'></SCRIPT><SCRIPT>if(existsCookie('customername')) alert('Приветствуем Вас, ' +CookieValue('customername')+ '!');else alert('Извините, мы Вас уже не помним...')</SCRIPT>

Пример 8.2. Чтение имени пользователя из cookie (html, txt)

Фокус - это характеристика текущего окна, фрейма или поля формы. В каждом из разделов, описывающем программирование этих объектов, мы, так или иначе, касаемся вопроса фокуса. Под фокусом понимают возможность активизации свойств и методов объекта. Например, окно в фокусе, если оно является текущим, т.е. лежит поверх всех других окон и исполняются его методы или можно получить доступ к его свойствам.



В данном разделе мы рассмотрим управление фокусом в

  • окнах;
  • фреймах;
  • полях формы.

Следует сразу заметить, что фреймы - это тоже объекты класса Window, и многиерешения, разработанные для окон, справедливы и для фреймов.

Для управления фокусом у объекта класса "окно" существует два метода:focus() и blur(). Первый передает фокус в окно, в то время как второй фокус из окна убирает. Рассмотрим простой пример:

<SCRIPT>function open_hidden_window(){wid=window.open('','test', 'width=100,height=100');wid.opener.focus();wid.document.open();wid.document.write('<H1>Скрытое</H1>');wid.document.close();}</SCRIPT><INPUT TYPE=button value='Скрытое окно' onClick='open_hidden_window()'>

В данном примере новое окно открывается и сразу теряет фокус - прячется за окном-родителем. При первом нажатии на кнопку оно еще всплывает и только после этого прячется, но при повторном нажатии пользователь не видит появления нового окна, т.к. оно уже открыто и меняется только его содержимое.

Для того чтобы этого не происходило, нужно после открытия передавать фокус новому окну:

<SCRIPT>function open_visible_window(){wid=window.open('','test', 'width=100,height=100');wid.focus();wid.document.open();wid.document.write('<H1>Видимое</H1>');wid.document.close();}</SCRIPT><INPUT TYPE=button value='Видимое окно' onClick='open_visible_window()'>

Если теперь совместить эти два примера на одной странице и нажимать попеременно кнопки "Скрытое окно" и "Видимое окно", то окно будет то появляться, то исчезать. При этом новых окон не появляется, так как с одним и тем же именем может быть открыто только одно окно.

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

Для реализации такого сценария достаточно использовать метод окна onblur(). Мы воспользуемся этим методом "в лоб":

window.onblur = new Function("window.defaultStatus = 'Работаем в фоне...';");window.onfocus = new Function("window.defaultStatus = 'Готово';");

Этот пример демонстрирует возможность выполнения функции в фоновом режиме. Для проверки этого примера откройте его в браузере, а затем откройте любое другое окно небольшого размера (например, блокнот) и следите за полем статуса в открытом окне браузера. Аналогичного эффекта можно было достичь, поместив указанные команды в контейнере BODY в обработчиках событий onBlurи onFocus.

Конечно, когда разработчики создавали всю эту конструкцию, думали не о том, как насолить пользователю, а о том, как сократить ресурсы, необходимые браузеру для отображения нескольких окон. Ведь можно выполнить все то же самое с точностью до наоборот: запускать, например, часы в фокусе и останавливать их в фоне. Но этот пример мы рассмотрим в контексте фреймов.



<== предыдущая лекция | следующая лекция ==>
Создание или изменение cookie | Скрытая передача данных из форм


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Полезен материал? Поделись:

Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.