Программирование > JavaScript & JScript

Время для загрузки изображения (локально)

(1/3) > >>

ashes:
Скрипт создаёт предварительные thumbnail\'ы (на стороне клиента) для фотографий, которые выбираются через input type="file". Примерно в половине случаев, особенно когда изображения большие (но не всегда), скрипт не определяет ширину или высоту выбранного изображения (определяет = 0). Из-за этого не создаётся thumbnail (потому что он пропорционален исходному изображению).

Мне кажется, что это из-за того, что браузеру не хватает времени, чтобы подгрузить и вычислить размеры изображения. Можно ли как-нибудь увеличить это время, организовать задержку (setTimeout() не помогает, зато помогает предварительно вызванный alert(), но не могу же я пугать пользователей alert\'ами). Пожалуйста, помогите. Я просто измучалась с этим скриптом.

Спасибо.

CGVictor:
ashes
Подробнее? Про thumbnail (каким образом) и определение ширины/высоты.

ashes:
Протестировать и посмотреть код можно здесь:

http://www.tcomplex.ru/temp/test_boxes.html

В общих чертах функция работает очень просто:

file_src = document.getElementById(filefield).value;
(где filefield - id поля input type="file")

image_src = file_src.replace(/\\\\/g, \'/\');

***
var img = new Image();
img.src = image_src;

***
img_height = img.getAttribute(\'height\');
(здесь скрипт иногда не определяет высоту, и тогда thumbnail не создаётся)

CGVictor:
ashes
Что тестировать - немного не ясно, т.к. у меня, например, вообще ничего (кроме кнопки "обзор") не заработало.

Идею вкратце понял: ты хочешь перед отправкой файла на сервер показать превьюху.

Обломаю: в большем количестве случаев нарвешься на ограничения безопасности. Просто не даст прочитать локальный файл.

ashes:
Забыла сказать, что это версия - для IE (4 и выше). В Opere (или firefox\'e) она действительно не сработает. Если у тебя есть IE, можешь посмотреть с помощью него, пожалуйста?

При чём тут ограничения безопасности - пользователь на своём компьютере смотрит свой же файл... Это обычный тэг img. (Скрипт на javascript. Естественно, если javascript не разрешён, ничего не получится).

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

Навигация

[0] Главная страница сообщений

[#] Следующая страница

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии