Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> размер картинки, как узнать размер картинки 
:(
    Опции темы
yuliada
Дата 4.7.2009, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 16.2.2009
Где: Иркутск - San Die go

Репутация: нет
Всего: нет



Есть текстовое поле с кнопкой, которое по нажатию показывает какую-то картинку. Картинка генерится сервлетом в зависимости от текста в поле, переданного параметром в url. Т.е. в html скриптом вставляется что-то вроде
Код

<img src='[url сервлета]?parameter=blah&[что-то еще]'>

Если параметру не соответствует никакая картинка, то приходит белое изображение 1px на 1px. Нужно как-то проверить какой у картинки размер и в зависимости от этого добавлять ее в код страницы или нет. Попробовала вот так:
Код

var nurl = 'http://something/someservlet?parameter=' + escape(name);
objImage = new Image();
objImage.src=nurl + '&h=192&w=256';
objImage.onload=function() {
  if(objImage.height>1){
    alert(objImage.height);
    document.getElementById('pathwaysImage').innerHTML='<b>Pathways</b><br><br>'+
      '<a href="' + getDomain() + '/imap.php?param='+escape(name)+'">'+
      '<img id="imgPath" class="searchScreenshot" src="' + nurl + '&h=192&w=256"/></a><br><br>';
  }else{
    document.getElementById('pathwaysImage').innerHTML='';
  }
};

Не получается, alert показывает, что у картинки высота такая же как и у нормальной найденной картинки, хотя на странице я вижу белую точку. Если ввести в адресную строку браузера nurl + '&h=192&w=256' и проверить какая там картинка, то там и есть белая точка, но почему тогда значение height не равно 1?

Это сообщение отредактировал(а) yuliada - 4.7.2009, 12:32
PM MAIL   Вверх
fidres
Дата 4.7.2009, 13:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 15.11.2006

Репутация: нет
Всего: 1



ну исмысл снова пытаться что-то делать уже в процессе отображения страницы, когда всё это можно определить средствами серверной части?
imap.php пусть и карпеет над этой задачей! там и надо вставлять проверку на ширину/высоту картинки, передаваемой клиенту!
--------------------
Исправьте ошибку в слове <ХЕРОШО> и я скажу Вам оптимист Вы или пессимист.
PM ICQ   Вверх
yuliada
Дата 4.7.2009, 22:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 16.2.2009
Где: Иркутск - San Die go

Репутация: нет
Всего: нет



Не совсем поняла как это. На странице есть поле для ввода, заранее не известно что туда напишут. При нажатии кнопки надо показать картинку в зависимости от введенного текста (т.е. динамически вставить ее на страницу), при клике на которую будет переход на imap.php или не показать. Как заставить imap.php это проверять, он тут как бы не причем???
Допустим там вообще вот такой код без всяких imap, что можно сделать?
Код

document.getElementById('pathwaysImage').innerHTML='<b>Pathways</b><br><br>'+      
      '<img id="imgPath" class="searchScreenshot" src="' + nurl + '&h=192&w=256"/><br><br>';


Это сообщение отредактировал(а) yuliada - 4.7.2009, 22:13
PM MAIL   Вверх
fidres
Дата 12.7.2009, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 15.11.2006

Репутация: нет
Всего: 1



>> Картинка генерится сервлетом в зависимости от текста в поле, переданного параметром в url
Код
http://something/someservlet?parameter=' + escape(name);
куда передаётся? чем обрабатывается?
я так понимаю, что уже после обработки введёных данных что-то происходит с картинкой...

последовательность событий:
открывается форма.
в ней, в поле ввода набирается текст, который передаётся на сервак для обработки.
в зависимости от введённого слова/данных - сервер присылает картинку/ответ, которые в последствии нужно отобразить (и правильно подогнать по размеру).

так?

вот я и говорю: на сервере пусть размер узнаётся/подгоняется.
--------------------
Исправьте ошибку в слове <ХЕРОШО> и я скажу Вам оптимист Вы или пессимист.
PM ICQ   Вверх
yuliada
Дата 12.7.2009, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 16.2.2009
Где: Иркутск - San Die go

Репутация: нет
Всего: нет



Почти так, подгонять ничего не надо. Сервер умеет отдавать картинку заданного (т.е. какого-то фиксированного) размера (т.е. он сам все подгоняет), но если на введенный текст нет никакой картинки, то сервер всегда отдает белую картинку 1px на 1px, надо это как-то отследить и в этом случае ее не показывать
PM MAIL   Вверх
yuliada
Дата 12.7.2009, 10:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 16.2.2009
Где: Иркутск - San Die go

Репутация: нет
Всего: нет



Картинка как-то генерится java-сервлетом, что там конкретно делается не знаю, у меня на него есть только ссылка
PM MAIL   Вверх
mxt
Дата 12.7.2009, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 133
Регистрация: 6.9.2007

Репутация: 1
Всего: 1



проверяй на событие load.  если картинка 1 пиксель, то удаляй её и контейнер в котором она находится.
--------------------
PM MAIL   Вверх
yuliada
Дата 13.7.2009, 19:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 16.2.2009
Где: Иркутск - San Die go

Репутация: нет
Всего: нет



В коде, который выше, примерно это и делается, или там что-то неправильно?
PM MAIL   Вверх
fidres
Дата 15.7.2009, 00:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 159
Регистрация: 15.11.2006

Репутация: нет
Всего: 1



ну соответсвенно что-то неверно!
иначе бы он работал!
 smile 
в любом случае чистый код - верный.
дело в параметрах обработки запроса на сервере.
хвост из "&h=192&w=256" как-то видимо не оговорен в серверном скрипте, которому передаётся твой запрос.
 smile 
код страницы выложить полностью можно?
--------------------
Исправьте ошибку в слове <ХЕРОШО> и я скажу Вам оптимист Вы или пессимист.
PM ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0763 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.