Остается одна маленькая неприятность (кто сказал, что будет легко?). Поскольку мы устанавливаем событие onload
для всех (оставшихся) браузеров, то init
сработает дважды — в IE и Firefox. Чтобы это обойти, нам нужно сообщить функции, что она должна выполняться только один раз. Итак, наш метод
function init() { // выходим, если функция уже выполнялась if (arguments.callee.done) return; // устанавливаем флаг, чтобы функция не исполнялась дважды| arguments.callee.done = true; // что-нибудь делаем };
Стоит также рассмотреть выставление глобальной переменной READY
в данном случае. Ведь иногда знать, что страница начала функционировать, может потребоваться не только одной функции init
.