Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » javascript onLoad

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

theIggs



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Имеется изображение, вот такое вот:
<img onload=\"javascript:бла-бла-бла\" src='source.gif' border='0'>
 
Код в онлоад= работает только до тех пор, пока браузер (сервер) не закэширует рисунок.
Так, например, c xntx.com рисунки всегда грузятся заново (онлоад срабатывает по окончании загрузки), а с nvkz.net - всегда сразу же кэшируются.
Как избавить от этого противного свойства? Или, может, существует какое-то другое событие для рисунков <img> , которое бы всегда возникало, когда рисунок отражается на странице?
 
Помогите, плиз!

----------
Русская поддержка по IP.Board на IBResource.ru.
Для счастья нужно: национальный трекер и поисковик!

Всего записей: 1114 | Зарегистр. 13-11-2002 | Отправлено: 13:56 05-07-2003
Lechii



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 Код в онлоад= работает только до тех пор, пока браузер (сервер) не закэширует рисунок.  

Какой броузер ? Какая версия ?  
В старых Netscape была такая проблема , событие onload не интерпретировалось при перезагрузке элемента .
 
Насколько мне известно , как в IE 6 так и в Moz/NS6.x такая проблема не наблюдается .  
И причем тут сервер ? Ведь речь идет о кэширование броузером , т.е. client-side .
 
Можно еще заставить броузер отрабатывать проверку на загрузку img , что то типа :

Код:
if (document.images['imageName'].complete)
do something  


Всего записей: 273 | Зарегистр. 26-12-2002 | Отправлено: 14:42 05-07-2003
theIggs



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Win98 + IE 5.0.
Насчёт кэширования не знаю. Рисунки с сервера www.nvkz.net вставляются всегда игнорируя код в onload, с kuzbass.com (там мой сайт) - через раз то игнорируя, то нет (???), а с xntx.com - всегда грузятся заново и код в onload исполняется. Может, и браузер так странно работает. :\
Как заставить браузер проверять загрузку img в случае каждого конкретного img? С onload'ом-то всё понятно - написал <img onload=...  и радуйся. Код вокруг этого <img> - на PHP.
Кстати, а никак нельзя узнать в PHP величину screen.width из яваскрипта? Через PHP же screen.width не определить, а из яваскрипта ничего не хочет возвращаться обратно в PHP-код.

----------
Русская поддержка по IP.Board на IBResource.ru.
Для счастья нужно: национальный трекер и поисковик!

Всего записей: 1114 | Зарегистр. 13-11-2002 | Отправлено: 15:03 05-07-2003
Lechii



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
theIggs
 
странно , у IE 5 вроде нет проблем с событием onload . Можно полюбопытствовать какой код исполняется в onload ?  
Также попробуй добавить атрибут name для img , загрузи их все в массив , т.е. сделай элементарный preload :

Код:
// Preload images
theImages = new Array()
for(i = 1; i < 11; i++) {
   theImages[i] = new Image()
   theImages[i].src = "image" + i + ".gif"
}

 
ну а потом как обычно
Код:
<img name="whatever" src="image1.gif" alt="[whatever]"
   onload="do something">

посмотри что получится ...
 

Цитата:
Как заставить браузер проверять загрузку img в случае каждого конкретного img?

посмотри http://www.faqts.com/knowledge_base/view.phtml/aid/848/fid/122
 

Всего записей: 273 | Зарегистр. 26-12-2002 | Отправлено: 16:26 05-07-2003
theIggs



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Lechii
Спасибо за подсказку, сделал так:
<body onload="javascript:rsz_img">
А в <script> уже вынес перебор всех рисунков и изменение размеров.
 
Теперь такой вопрос - а нельзя ли при этом самом переборе сделать так, чтобы рисунок становился гиперссылкой, т.е. при срабатывании внутри функции rsc_img() какого-то условия <img> превращался бы в <a href=бла-бла><img></a> или, того лучше, в <img onmouseover="javascript:window.open(this.src)"> ?.. %)
 
Добавлено
Ой, почти одновременно.
 
Lechii

Код:
// Preload images  
theImages = new Array()  
for(i = 1; i < 11; i++) {  
   theImages[i] = new Image()  
   theImages[i].src = "image" + i + ".gif"  
}

Ой, я за**усь в этом месте:

Код:
theImages[i].src = "image" + i + ".gif"

код придумывать, потому как рисунки имеют самые разные имена, а не image2.gif, image3.gif... ну и переименовать никак нельзя.
В общем, идею понял, перебирать можно и через document.images[i].src... надо будет попробовать.
 
Код в onload рисунка был:

Код:
javascript:if(this.width > (screen.width - 300)) {this.width = screen.width - 300}


----------
Русская поддержка по IP.Board на IBResource.ru.
Для счастья нужно: национальный трекер и поисковик!

Всего записей: 1114 | Зарегистр. 13-11-2002 | Отправлено: 16:29 05-07-2003
Lechii



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
theIggs
 

Цитата:
сделать так, чтобы рисунок становился гиперссылкой

уволь , это уже извращение чистейшей воды
 
ага , вроде до меня дошло - посмотри http://forum.ru-board.com/topic.cgi?forum=31&topic=3192 пост Svarga , четвертый от конца , если я правильно понял , его скрипт тебе пригодится .
добавь туда обработку размера и готово
 
 
 

Всего записей: 273 | Зарегистр. 26-12-2002 | Отправлено: 17:13 05-07-2003
theIggs



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Lechii

Цитата:
уволь , это уже извращение чистейшей воды  

Почему же? Делать по умолчанию все рисунки на странице (которых до фига) гиперссылками - это существенный лишний вес для отдаваемой страницы. А вот те рисунки, которые пострадали от ресайза, желательно было бы делать гиперссылками, чтоб народ мог тыкнуть на них и попасть на полноформатный оригинал.
width рисунков же можно менять после загрузки страницы - вот бы классно было менять и их onClick... %)
 
А пока сделал уведомление об изменении размеров в новом окошке.

Код:
function Rsz_img() {
var imgCnt = 0;
var imgTxt = "Уменьшенные изображения:<br>";
for (var i=0; i<document.images.length; i++) {
  if (document.images[i].width > (screen.width-300))
  { document.images[i].width = screen.width-300;
  ++imgCnt;
  imgTxt += "<a target='_blank' href='" + document.images[i].src + "'>" + document.images[i].src + "</a><br>";
  }
}
 
if (imgCnt > 0) {
  X = (screen.width - 515);
  Y = (screen.height - 260);
  win = window.open('','','toolbar=no,menubar=no,location=no,directories=no,status=no,scrollbars=no,resizable=yes,copyhistory=no,width=500,height=200,top='+Y+',left='+X);  
  win.document.write(imgTxt);
}}


----------
Русская поддержка по IP.Board на IBResource.ru.
Для счастья нужно: национальный трекер и поисковик!

Всего записей: 1114 | Зарегистр. 13-11-2002 | Отправлено: 20:13 05-07-2003
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » javascript onLoad


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru