Автор Тема: событие onload в теге img не работает для Opera  (Прочитано 4327 раз)

0 Пользователей и 1 Гость просматривают эту тему.

caxap666

  • Гость
http://li2020.iho.ru/design1.html
Для смены картинок путем нажатия кнопки использую замену  .src  в скрипте:
document.slideshow.src = design1[ImgNum];

 Проблема в том что для картинок должны появляться соответствующие им надписи :
if(numer==1) {if(ImgNum==1-1) {d.all.text11.style.visibility="visible";}}

но так как на загрузку картинки нужно некоторое время надпись появляется слишком рано и может налезать на img другого размера.
Проблема решается для IE введением:
<img src="design1/1.jpg" name="slideshow"  onload="ShowText()">

но Opera 7.0 не вызывает функцию более одного (первого) раза. Opera9.1 работает.
Возможно нужен какой то другой синтаксис либо каким то образом "выгружать картинку" перед заменой???
везде в нете пишут про <body>  неужели не сталкивались с <img>????

Оффлайн prayer

  • Коллежский асессор
  • *****
  • Сообщений: 258
  • Репутация: 1
Re: событие onload в теге img не работает для Opera
« Ответ #1 : °ЯаХЫм 06, 2007, 02:01:35 pm »
1)Согласно стандартам W3C onload можно использовать только с body и frameset.
2)У Оперы всегда было плохо со скриптами.
3)Можно изменять width и height у img перед загрузкой новой картинки
Абстракция - выборочное невежество.
-Andrew Koenig, член комитета по стандартизации С++

Оффлайн Ghirik

  • Коллежский регистратор
  • *
  • Сообщений: 3
  • Репутация: 0
Re: событие onload в теге img не работает для Opera
« Ответ #2 : °ТУгбв 15, 2007, 03:50:32 pm »
А почему не использовать предварительную загрузку изображений? Можно ведь вначале подгрузить все первые картинки, потом показать страницу, и после показа продолжить загрузку тех изображений, которые должны появляться при кликах кнопок. И страница достаточно быстро появится, и пока клиент очухается, чтобы нажать на кнопку, подгрузятся остальные изображения.

Оффлайн Ghirik

  • Коллежский регистратор
  • *
  • Сообщений: 3
  • Репутация: 0
Re: событие onload в теге img не работает для Opera
« Ответ #3 : °ТУгбв 15, 2007, 03:59:43 pm »
2)У Оперы всегда было плохо со скриптами.

Я никогда не пользовался Оперой, а вот недавно установил 9.2 портабле. У меня, напротив, сложилось впечатление, что она глотает всё, хоть просто русским языком ей напиши, что нужно сделать, она сделает.
Бывает скрипт не работает в Мозилле, в IE работает, или наоборот, а в Опере в обоих вариантах работает...

Оффлайн $_

  • Титулярный советник
  • ****
  • Сообщений: 147
  • Репутация: 1
  • Пол: Мужской
Re: событие onload в теге img не работает для Opera
« Ответ #4 : °ТУгбв 16, 2007, 02:35:30 pm »
Чтоб никто ни на кого не налезал, воспользуйся таблицой. А для того что бы ширина столбцов не увеличивалась самостоятельно, пропиши табличке стиливое правило типа <table .... style="table-layout:fixed;">. И у каждого столбца надо написать следующее <td.... style="overflow:hidden;">. То что надпись появляется слишком быстро - ну так извините. Когда страница по диалапу грузится она тоже по кускам "вылезает", и вид у нее ну очень не привлекательный - ничего ждут же пользователи и там подождут(если картинка конечно не слишком большая)

Оффлайн tonik_spb

  • Коллежский регистратор
  • *
  • Сообщений: 1
  • Репутация: 0
Re: событие onload в теге img не работает для Opera
« Ответ #5 : °ЯаХЫм 06, 2009, 06:34:09 pm »
Совсем недавно один мой друг написал мини стетейку на эту тему, вообщем ответ почему не работает onload тут