Forum Webscript.Ru

Программирование => JavaScript & JScript => Тема начата: GRS от 09 Сентября 2005, 10:29:06

Название: Действие по окончанию загрузки страницы
Отправлено: GRS от 09 Сентября 2005, 10:29:06
Приветствую! :)

Существую 2 страницы, но на второй много *.gif картинок, которые грузятся примерно 15-20 секунд. Я хочу, что бы переход на эту вторую страницу с первой осуществлялся через нажатие на кнопку "Войти", но сама кнопка становилась доступной только после того, как все необходимые графические файлы второй страницы будут загружены. Т.е., что бы переход был максимально быстрым после нажатия на кнопку.

Т.е.,
Вопрос номер 1: как заранее загрузить графический файл, даже если на текущей странице он никак не используется (но нужен для второй, к примеру)?

Вопрос номер 2: существует ли событие, указывающее на то, что страница загружена полностью?

И еще: у слоя DIV существует свойство Visible? Его можно как-то изменять?
Название: Действие по окончанию загрузки страницы
Отправлено: CGVictor от 09 Сентября 2005, 12:41:58
GRS
1.Использовать объект Image - если с кешированием никто не мудрил, то на следующей странице он подкачиваться вроде бы не должен.
img = new Image

2.body onLoad

3.divobject.style.visibility
divobject.style.display
Название: Действие по окончанию загрузки страницы
Отправлено: GRS от 09 Сентября 2005, 13:04:36
Цитировать
1.Использовать объект Image - если с кешированием никто не мудрил, то на следующей странице он подкачиваться вроде бы не должен.
img = new Image


немного не понял. Можно пример? IMG - загрузит картинку, но если она мне на этой странице не нужна - как быть?

Цитировать
2.body onLoad


Спасибо, разобрался ;)

Цитировать
3.divobject.style.visibility
divobject.style.display


Буду искать, только вот второй вариант, тот что style.DISPLAY - это одно и тоже?
Название: Действие по окончанию загрузки страницы
Отправлено: AlexVN от 10 Сентября 2005, 02:17:04
Цитировать
Цитировать
1.Использовать объект Image - если с кешированием никто не мудрил, то на следующей странице он подкачиваться вроде бы не должен.
img = new Image
немного не понял. Можно пример? IMG - загрузит картинку, но если она мне на этой странице не нужна - как быть?


Кртинка загрузится на первой странице и поместится в кеш броузера. На второй странице броузер (теоритически) возьмет эту картинку из кеша.
Название: Действие по окончанию загрузки страницы
Отправлено: GRS от 10 Сентября 2005, 10:00:18
Куда ее в таком случае вставить - что бы видно не было? DIV со свойством Visible = NO? есть такое?
Название: Действие по окончанию загрузки страницы
Отправлено: Mog. от 10 Сентября 2005, 11:32:32




Название: Действие по окончанию загрузки страницы
Отправлено: Демет от 12 Сентября 2005, 11:21:12
Цитировать
Куда ее в таком случае вставить - что бы видно не было??

куда угодно.
Название: Действие по окончанию загрузки страницы
Отправлено: CGVictor от 13 Сентября 2005, 11:10:12
GRS
Цитировать
GRS:
это одно и тоже?

Не одно.
display определяет отображение-в-принципе. То есть со всеми привязанными свойствами.
visibility определяет именно видимость, т.е. элемент может быть невидим, но свойства (например, отступы, положение на странице и проч.) будут рассчитываться.

А пример со скрытым div-ом вполне подойдет.
Название: Действие по окончанию загрузки страницы
Отправлено: GRS от 13 Сентября 2005, 14:01:02
Еще вопрос, у меня уже есть:

onLoad="MM_preloadImages(\'img/but/entsite_1.jpg\')"

а можно еще одно событие добавить? Мне нужно, что бы слой, который у меня до окончания был hidden, стал visible. Как? Или я не могу свойствами объектов оперировать в этом случае?
Название: Действие по окончанию загрузки страницы
Отправлено: Макс от 13 Сентября 2005, 14:21:29
onload="alert(1111); alert(2222); alert(3333);"
Название: Действие по окончанию загрузки страницы
Отправлено: GRS от 13 Сентября 2005, 15:05:07
Да, да, да, уже нашел...

Теперь другая проблема.

Есть у меня слой:



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

function showButton(){ //v3.0
 var d=document;d.Layers["Button2"].visibility="visible";}


и, соответственно, обращение по окончанию загрузки:

 


Выдает ошибку, вроде как "...null или не является объектом". Зайдите на http://www.grscom.com, если наглядно нужно. Что не так?

Я поискал в интернете обращение из JavaScript к свойствам слоя и нашел что синтаксис такой:document.layers["НАЗВАНИЕ СЛОЯ"].visibility = "visible"

Где ошибка?
Название: Действие по окончанию загрузки страницы
Отправлено: Макс от 13 Сентября 2005, 15:21:02
ты про document.layers где прочел ?
Это только netscape-ом поддерживается.
для большинства современных броузеров
document.getElementById(\'название слоя\') надо использовать
Название: Действие по окончанию загрузки страницы
Отправлено: GRS от 13 Сентября 2005, 15:21:56
Текс... у меня-то он идет как
, а не layer. В чем отличие? Могу обратиться к DIV\'у таким же образом? Или надо будет слой, именно СЛОЙ рисовать?
Название: Действие по окончанию загрузки страницы
Отправлено: unclebob от 13 Сентября 2005, 18:27:52
как уже было сказано
короче юзай
Название: Действие по окончанию загрузки страницы
Отправлено: GRS от 13 Сентября 2005, 20:55:48
С этим разобрался - спасибо. Теперь другая запорка.

Существуеют графические эффекты при переходе страниц (Растворение, жалюзи и т.д.) Эти эффекты описываются в мета-тэгах. Вот, например, тот, которым я хотел воспользоваться:



Плавное проявление картинки. Но, почему у меня на компьютере все как надо, а на сервер выкладываю и переход обычный... почему?
Название: Действие по окончанию загрузки страницы
Отправлено: Макс от 14 Сентября 2005, 11:44:07
проверяешь в обоих случаях через MSIE ?
Может проверяешь чего-то не то? Посмотри html-source в полученной с сервера страницы