русс | укр

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

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

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

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


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

Событие onload


Дата добавления: 2015-07-09; просмотров: 638; Нарушение авторских прав


 

Программный JavaScript_код, выполняющий модификации документа, в кото_ ром он содержится, как правило, должен запускаться лишь после того, как до_ кумент будет полностью загружен (детальное обсуждение этого вопроса вы най_ дете в разделе 13.5.7). Когда загрузка документа завершается, броузеры генери_ руют событие onload в объекте Window, и это событие обычно используется для за_ пуска программного кода, которому требуется доступ ко всему документу. Если веб_страница содержит несколько независимых модулей, которые должны за_ пускаться в ответ на событие onload, вам пригодится не зависящая от платформы вспомогательная функция, подобная представленной в примере 17.7.

 

Пример 17.7. Переносимый способ регистрации обработчиков события onload

/*

* runOnLoad.js: переносимый способ регистрации обработчиков события onload.

 

*

* Данный модуль определяет единственную функцию runOnLoad(),

* выполняющую регистрацию переносимым способом функций_обработчиков,

* которые могут вызываться только после полной загрузки документа,

 

* когда будет доступна стуктура DOM.

*

* Функциям, зарегистрированным с помощью runOnLoad(), не передается ни одного

* аргумента при вызове. Они вызываются не как методы какого_либо объекта

* и потому в них не должно использоваться ключевое слово this.

* Функции, зарегистрированные с помощью runOnLoad(), вызываются

* в порядке их регистрации. При этом нет никакой возможности отменить

* регистрацию функции после того, как она передана функции runOnLoad().

*

* В старых броузерах, не поддерживающих addEventListener() или attachEvent(),

* эта функция выполняет регистрацию с использованием свойства window.onload

* модели DOM уровня 0. Она будет работать некорректно в документах,

* где установлен атрибут onload в тегах <body> или <frameset>.



*/

function runOnLoad(f) {

if (runOnLoad.loaded) f(); // Если документ уже загружен, просто вызвать f().

else runOnLoad.funcs.push(f); // Иначе сохранить для вызова позднее

}

 

runOnLoad.funcs = []; // Массив функций, которые должны быть вызваны // после загрузки документа


 

450 Глава 17. События и обработка событий

runOnLoad.loaded = false; // Функции еще не запускались.

 

// Запускает все зарегистрированные функции в порядке их регистрации.

// Допускается вызывать runOnLoad.run() более одного раза: повторные

 

// вызовы игнорируются. Это позволяет вызывать runOnLoad() из функций

 

// инициализации для регистрации других функций.

runOnLoad.run = function() {

 

if (runOnLoad.loaded) return; // Если функция уже запускалась, ничего не делать for(var i = 0; i < runOnLoad.funcs.length; i++) {

try { runOnLoad.funcs[i](); }

catch(e) { /* Исключение, возникшее в одной из функций, не должно

делать невозможным запуск оставшихся */ }

}

 

runOnLoad.loaded = true; // Запомнить факт запуска.

delete runOnLoad.funcs; // Но не запоминать сами функции.

delete runOnLoad.run; // И даже забыть о существовании этой функции!

};

 

// Зарегистрировать метод runOnLoad.run() как обработчик события onload окна if (window.addEventListener)

window.addEventListener("load", runOnLoad.run, false);

 

else if (window.attachEvent) window.attachEvent("onload", runOnLoad.run); else window.onload = runOnLoad.run;

 



<== предыдущая лекция | следующая лекция ==>
Быстрые комбинации клавиш и класс Keymap | Искусственные события


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


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

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

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


 


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

 
 

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

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