| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > onload - разница в работе, почему |
| Автор: Иль 4.4.2005, 18:10 | ||||
Второй вариант не работает правильно, если его написать до <body>. Можно что-то сделать?
Функция something меняет отображение элементов страницы |
| Автор: Aliance 4.4.2005, 18:15 |
| А до функции создания body его нет в документе? |
| Автор: Иль 4.4.2005, 19:26 |
| Да. Я сначала пишу в <HEAD> в <script> эти две строчки и описываю тамже something(), а потом у меня <BODY> идет. Видимо в этом причина. А можно что-то сделать чтоб не писать скрипт и не присоединять .js фаил в самом <BODY>? Конечно не хорошо спрашивать кокда есть проверенное годами решение инлайн, просто недопонимаю |
| Автор: Aliance 4.4.2005, 20:32 | ||||
Хоть убейте не пойму что тут написано 8)) Если у тебя уже есть блок - поидеи нельзя его генерить )) Потом, есть, действительно, инлайн. А вообще, body.onload - это не есть хорошо. Тогда бы уж нужно бы было сменить имя переменной, иначе скрипт путается. А вообще, читай статью «Все о событиях» [ http://forum.vingrad.ru/index.php?showtopic=32350 ]. Подведу итог: Либо inline, либо так:
|
| Автор: Иль 4.4.2005, 20:37 |
| Aliance, window.onload - оно. Не знал, спасибо. Сказывается моя неопытность и не Чувствую, что надо 32350 опять перечитать и зазубрить |
| Автор: Иль 4.4.2005, 21:08 | ||
Все работает, но почему-то, когда я убираю строчку
в присоединяемый .js фаил ИЕ выдает сообщение об ошибке (не поддерживается), хотя работает. |
| Автор: Aliance 4.4.2005, 22:07 |
| Т.к. файл должен сам загрузиться... вообще, IE для этого не лучший тестёр. Попробуй задержку нулевую поставить, но вообще так нельзя. Незачто. Советую тебе потыкать в моей подписи, пришлось пожертвовать ею ради JSа =))) Найдешь много чего интересного и полезного |
| Автор: Sardar 5.4.2005, 01:06 | ||
Да, document.body не сучествует пока одноимённый тег не будет прочтён браузером, либо страница не закончится.
Подробнее об этом? Кстати не советую пользоватся (body|window).onload, бывает так что баннер не загружается и браузер просто минуту простаивает. Лучше в самом конце страницы вызвать dosomething() в ручную. |
| Автор: Иль 5.4.2005, 06:40 | ||||
Я разобрался, дело в скобках после функции
|
| Автор: Иль 5.4.2005, 07:31 |
| Sardar, спасибо за информацию. Я правильно понял, лучше не <body onLoad="myfucntion()">, а именно в конце страницы? |
| Автор: Aliance 5.4.2005, 15:39 |
| Иль Тьфу ты, извени. Канечно же это моя ошибка. Не нужны скобки. Я просто копировал код не вырезая с твоего... сори =) |
| Автор: Sardar 5.4.2005, 17:54 | ||||
В первом случае работать не должно вообще, т.к. функция отработает, а результат её будет записан в window.onload. Впрочем если ты результатом возвращаешь функцию, то проблем не будет
Да, некоторые браузеры не запускают вовсе либо с задержкой событие onload если на странице есть какие то тормозные на загрузку элементы(баннеры, большие картинки и т.п.) |
| Автор: Иль 5.4.2005, 19:06 | ||
Тонко! Буду помнить. |