Вопрос по JavaScript: как в Html проще определить размеры изображения?

  • Автор темы Автор темы Evgen
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Evgen

Registered User
Топикстартер
20 лет на форуме
Сообщения
2 054
Реакции
984
Спрошу и здесь. ))

Задача банальная: при нажатии на картинку-превьюшку на web-странице должна в новом окне появляться нормальная/увеличенная версия этого изображения.
Вроде всё просто: подсовываем методу window.open в аргументах ссылку на картинку и остальное по необходимости (в том числе ширину и высоту).
Изображения попадаются с разными линейными размерами, поэтому в функцию нужно бы передавать в строке аргументов и размеры самих картинок, но я не хочу. ))
Хочу сделать так, чтобы функция сама определяла размеры в px.

Реализация через предварительную загрузку
PHP:
function openwin( myPicture, ... ){
        ...
    newImg = new Image();
    newImg.src = myPicture;

    myWidht = newImg.width;
    myHeight = newImg.height;
        ...
        // и далее открытие окна с вычисленными myWidht и myHeight
        ...
}
работает, всё нормально.
Но, понятное дело, в этом случае возникают паузы/задержки, от чего хочется уйти.
Также не хочется передавать в явном виде еще два аргумента (ширина, высота) — хочу более универсальную функцию.

Вопрос: нет ли какого хитрого способа без предварительной загрузки и без явной передачи параметров ширины и высоты изображений создавать новое окно с нужными размерами?
Подскажите, если такое возможно в рамках Html (сайт без поддержки PHP).

Спасибо.


P.S. Я, в общем-то, сам не понимаю, как можно узнать параметры объекта, если тот еще не загружен, и в аргументах функции об этом тоже ничего нет. ))
 
Ответ: Вопрос по JavaScript: как в Html проще определить размеры изображения?

Мысли в голову лезут разные. Вот когда в IE ходишь по сайтам с отключенным показом изображений, он показывает пустые прямоугольники соответствующих размеров...
 
Ответ: Вопрос по JavaScript: как в Html проще определить размеры изображения?

Например, такая версия: изображение не показывается (запрещено), а размеры известны.
Если и запрещено, и не известны размеры, что в таком случае делает IE? Все-таки подгружает изображение?
Скорее, в коде страницы уже прописаны размеры.

Это, конечно, можно проверить, но не сейчас.


А еще какие мысли залезли? ))
 
Ответ: Вопрос по JavaScript: как в Html проще определить размеры изображения?

Ну вот фрагмент кода страницы которую вы сейчас смотрите.
Код:
<img src="images/misc/vbulletin3_logo_white.gif" border="0" alt="Форум Дизайн и Полиграфия" /></a></td>

А вот ее скриншот. Откуда IE узнал рамеры картинки? Можно предположить что загрузил и посмотрел, но скажу вам как диалапщик со стажем это не так. В этом случае - какой смысл отключать показ изображений?

Это я все к чему веду... К тому, что узнать размеры, видимо как-то можно.
 

Вложения

  • size.gif
    size.gif
    8.3 КБ · Просм.: 981
Ответ: Вопрос по JavaScript: как в Html проще определить размеры изображения?

Откуда IE узнал рамеры картинки?
Хороший вопрос. ))
Полагаюсь на ваш стаж диалапщика.
 
Ответ: Вопрос по JavaScript: как в Html проще определить размеры изображения?

Evgen сказал(а):
Хороший вопрос. ))
Полагаюсь на ваш стаж диалапщика.

Увы, позавчера я расстался с любимым диалапом. :) Теперь совсем другие мысли в голову лезут... :D

Надо Батушева спросить, он у нас по веб-дизайну гуру, а я так...
 
Ответ: Вопрос по JavaScript: как в Html проще определить размеры изображения?

Ясно. Надо спросить у Батушева.

Виталий, спрашиваю. ))
 
Ответ: Вопрос по JavaScript: как в Html проще определить размеры изображения?

Evgen сказал(а):
Вопрос: нет ли какого хитрого способа без предварительной загрузки и без явной передачи параметров ширины и высоты изображений создавать новое окно с нужными размерами?
Подскажите, если такое возможно в рамках Html (сайт без поддержки PHP).

функция
PHP:
function open_win(url)  {  window.open(url,"_blank","toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width=640, height=470")  }

пример вызова:
PHP:
 echo "<tr class=\"tiny\" onclick=\"open_win('$urls')\"";
 
Ответ: Вопрос по JavaScript: как в Html проще определить размеры изображения?

Спасибо, Александр, буду разбираться.
Просматриваю в гугле материал по запросу "echo in javascript". ))
 
Ответ: Вопрос по JavaScript: как в Html проще определить размеры изображения?

echo - это команда PHP - необращайте внимания..

на фотку нужно повесить только это onclick="open_win('http://forum.rudtp.ru')
 
Ответ: Вопрос по JavaScript: как в Html проще определить размеры изображения?

на фотку нужно повесить только это onclick="open_win('link')
Я ж в начале ветки написал то же самое...
Update:
А, да, прошу прощения, я не показал код, которым вызывается обсуждаемая функция. Но это, на мой взгляд, банально.
Меня ведь интересует именно возможность выяснения размера картинки, передаваемой линком в эту самую функцию.

echo - это команда PHP - необращайте внимания..
Как же не обращать-то, если у меня всего лишь Html? (См. первый пост.)
 
Ответ: Вопрос по JavaScript: как в Html проще определить размеры изображения?

Не, все это классно, а как это поможет создать окно по размеру изображения?

А нет ли способа создать "резиновое" окно? Правда скорее всего получим browser dependence...
 
Ответ: Вопрос по JavaScript: как в Html проще определить размеры изображения?

Specialist сказал(а):
как это поможет создать окно по размеру изображения?
Не понял вопрос, что именно "это"?

А нет ли способа создать "резиновое" окно?
Если я правильно понял прилагательное, то именно это я и хочу сделать.
Как мне представляется, это понятно из моего первого поста в этой ветке.
Если что там не понятно, пожалуйста задайте вопрос(ы).


З.Ы. Бывшие программёры именно так и писали (да и должны писать сегодняшние) — универсализация кода. (Пока мегаметры памяти и мегагерцы частоты не свели в могилу программистский интеллект некоторых из них, а нынешним "писакам" — пофиг веники-мороз. Сколько весит дистрибутив Adobe-*??? Сколько FreeHand11??? Сравнение грубое, да.)
Я добиваюсь именно универсальности функции, т.к сам из "тех самых, бывших", которые еще боролись за каждый бит, не то, чтобы хотя бы за килобайт...
Пардон, я отвлекся.
 
Ответ: Вопрос по JavaScript: как в Html проще определить размеры изображения?

Evgen сказал(а):
Не понял вопрос, что именно "это"?

Имелась ввиду информация сообщенная Барракудой.

Evgen сказал(а):
Если я правильно понял прилагательное, то именно это я и хочу сделать.
Как мне представляется, это понятно из моего первого поста в этой ветке.
Если что там не понятно, пожалуйста задайте вопрос(ы).

Если я правильно понял ваш первый пост, то задача неким образом определить размеры изображения и создать окно соответствующих размеров. Нет?

Под прилагательным подразумевалось создание окна которое САМО растянется до нужных размеров.

Хих. Fit frame to content :)
 
Ответ: Вопрос по JavaScript: как в Html проще определить размеры изображения?

Имелась ввиду информация сообщенная Барракудой.
Ясно.
К сожалению, Директор мира ничего нового не сообщил.

задача неким образом определить размеры изображения и создать окно соответствующих размеров.
Под прилагательным подразумевалось создание окна которое САМО растянется до нужных размеров.
Всё верно, кроме одного: новое окно само растягиваться не будет, ему нужно задать размеры.
Об этом и идет речь.

Хих. Fit frame to content :)
Согласен, хих. Только это не DTP. ))
 
Ответ: Вопрос по JavaScript: как в Html проще определить размеры изображения?

Evgen сказал(а):
новое окно само растягиваться не будет

Ну это было рабочее предположение. В лучших традициях мозговых штурмов. :)
 
Ответ: Вопрос по JavaScript: как в Html проще определить размеры изображения?

Понятно. :)
Спасибо за участие.


Не по теме:
И как эйфория от расставания с диалапом? Похоже, захватила по самое "небалуйся"? :)
 
Ответ: Вопрос по JavaScript: как в Html проще определить размеры изображения?

Порой даже из бредовой идеи можно что-то извлечь.


Не по теме:
Ага. Весь день сижу. И всю ночь тоже. :)
 
Ответ: Вопрос по JavaScript: как в Html проще определить размеры изображения?

Согласен.


Не по теме:
Вижу. ))
 
Ответ: Вопрос по JavaScript: как в Html проще определить размеры изображения?

Хм... А может вы рано забраковали идею с предварительной загрузкой? Ведь второй раз она скачиваться не будет (вытащится из кэша). А пока она грузится показывать веселенький прогресс-бар...

Или так.
Создавать окно с каким-то отфонарным размером, скачивать картинку, а потом подгонять?
 
Статус
Закрыто для дальнейших ответов.